Unified document surface

ABSTRACT

The present disclosure describes methods and systems for interpreting a first user input comprising a text flow entry, interpreting a second user input comprising one of an in-line data access entry and a table-based calculation entry, positioning a text entry value on a unified document surface in response to the first user input, creating at least one data structure in response to the one of the in-line data access entry and the table-based calculation entry, and positioning the data structure on the unified document surface.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/499,888, filed Apr. 28, 2017, and entitled “UNIFIED DOCUMENTSURFACE”.

U.S. patent application Ser. No. 15/499,888, filed Apr. 28, 2017 is acontinuation of U.S. patent application Ser. No. 15/499,887, filed Apr.27, 2017, and entitled “OPERATIONS LOG”.

U.S. patent application Ser. No. 15/499,887 claims the benefit ofpriority to U.S. Provisional Patent application No. 62/328,469, filedApr. 27, 2016, and entitled “UNIFIED COLLABORATIVE DIGITAL PLATFORM”.

U.S. patent application Ser. No. 15/499,887 also claims the benefit ofpriority to U.S. Provisional Patent application No. 62/485,908, filedApr. 15, 2017, and entitled “UNIFIED COLLABORATIVE DIGITAL PLATFORM”.

The content of each of the foregoing applications is hereby incorporatedby reference in its entirety for all purposes.

BACKGROUND Field of the Invention

This disclosure relates to, without limitation, operating a unifieddocument workspace, including a collaborative workspace.

SUMMARY

An embodiment of the present disclosure includes a system, comprising afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; and anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and position the data structure onthe unified document surface.

The unified document surface application circuit may be furtherstructured to interpret a document location corresponding to the firstuser input, wherein the text flow processing circuit is furtherstructured to position the text entry value on the unified documentsurface in response to the document location.

The unified document surface application circuit may be furtherstructured to interpret a second document location corresponding to thesecond user input, wherein the enhanced data processing circuit isfurther structured to position the data structure on the unifieddocument surface in response to the second document location.

The data structure may comprise at least one object selected from thelist of objects consisting of: a table, a canvas, a sheet, a line, arange, a file, an image, a graph, a chart, media content, video content,audio content, and a formula parameter.

The document location and the second document location may be within asame section of the unified document surface.

The same section may comprise at least one section selected from thesections consisting of: a canvas, a sheet, a grid, and an object.

The document location and the second document location may be includedwithin the other of the document location and the second documentlocation.

The document location may comprise a constrained portion of the unifieddocument surface application circuit.

The second document location may comprise an unconstrained portion ofthe unified document surface application circuit.

The unified document surface application circuit may be furtherstructured to interpret a user view value, and to provide a documentview in response to the user view value.

The user view value may comprise at least one user selection selectedfrom: a tab selection, a slide selection, and a tiled window.

The user view value may comprise at least one value selected from thevalues consisting of: a user designation, a user authorization, a userdevice parameter, a filter value, a sorting value, a priority value, adocument role value, a text view, a data view, a metadata view, aformula view, and a predetermined view selection.

The unified document surface application circuit may be furtherstructured to interpret a user device parameter, and to provide adocument view in response to the user device parameter.

The unified document surface application circuit may be furtherstructured to configure the document view in response to at least oneof: a user device screen size, a user device input type, a user deviceresource parameter, or a user device communication value.

An embodiment of the present disclosure includes a method, comprisinginterpreting a first user input comprising a text flow entry;interpreting a second user input comprising one of an in-line dataaccess entry and a table-based calculation entry; positioning a textentry value on a unified document surface in response to the first userinput; creating at least one data structure in response to the one ofthe in-line data access entry and the table-based calculation entry; and

positioning the data structure on the unified document surface.

An embodiment of the present disclosure may further compriseinterpreting a document location corresponding to the first user input,and positioning the text entry value on the unified document surface inresponse to the document location.

An embodiment of the present disclosure may further compriseinterpreting a second document location corresponding to the second userinput, and positioning the data structure on the unified documentsurface in response to the second document location.

The document location and the second document location may be within asame section of the unified document surface.

The same section may comprise at least one section selected from thesections consisting of: a canvas, a sheet, a grid, and an object, andmay further comprise including one of the document location and thesecond document location within the other of the document location andthe second document location.

The document location may comprise a constrained portion of the unifieddocument surface application circuit.

The second document location may comprise an unconstrained portion ofthe unified document surface application circuit.

An embodiment of the present disclosure may further compriseinterpreting a user view value, and providing a document view inresponse to the user view value.

The user view value may comprise at least one user selection selectedfrom: a tab selection, a slide selection, and a tiled window.

The user view value may comprise at least one value selected from thevalues consisting of: a user designation, a user authorization, a userdevice parameter, a filter value, a sorting value, a priority value, adocument role value, a text view, a data view, a metadata view, aformula view, and a predetermined view selection.

An embodiment of the present disclosure may further compriseinterpreting a user device parameter, and providing a document view inresponse to the user device parameter.

An embodiment of the present disclosure may further comprise configuringthe document view in response to at least one of: a user device screensize, a user device input type, a user device resource parameter, or auser device communication value.

An embodiment of the present disclosure includes a method, comprisinginterpreting a user input indicating a table reference value; accessinga unified document surface comprising at least two tables; and resolvinga referenced table of the at least two tables in response to the tablereference value.

The at least two tables may each comprise a reference name valueconsistent with the table reference value, and wherein the resolving maycomprise: determining a first user related position in the unifieddocument surface, and finding a closest hierarchically related one ofthe at least two tables in response to the first user related position.

The table reference value may comprise a character sequence, and whereina first portion of each of the reference name values of each of the atleast two tables are consistent with the character sequence.

An embodiment of the present disclosure may further comprise providing auser with an option list in response to the table reference value,wherein the option list comprises at least one of the at least twotables, and wherein the resolving is in response to a selection of theuser from the option list.

An embodiment of the present disclosure may further comprise providingthe user with a preview of at least one member of the option list.

The preview may comprise at least one value selected from the valuesconsisting of: an image corresponding to at least a portion of the atleast one member; a title of the at least one member; a column headingfrom the at least one member; at least one data value from the at leastone member; and a result value corresponding to the at least one member.

The preview may comprise a result value corresponding to the at leastone member, wherein the result value comprises a result of a currentoperation of the user that would be returned if the previewed member ofthe option list is selected.

An embodiment of the present disclosure may further comprise appendingan additional user input to the character sequence, and updating theresolving in response to the additional user input.

The appending additional user input may comprise at least one of anaddition to the character sequence or a deletion from the charactersequence, and wherein at least two of the at least two tables maycomprise an identical local reference name, and/or wherein at least twoof the at least two tables may comprise a shared plurality ofintroductory characters of a local reference name.

An embodiment of the present disclosure includes an apparatus,comprising a client computing device structured to receive a dataelement from a document server, the data element comprising at least aportion of a document; the client computing device further comprising: auser display circuit structured to determine a document view in responseto the data element, and to provide the document view to a user; areference management circuit structured to interpret a user referenceselection, and to determine a reference return value in response to theuser reference selection; and wherein the user display circuit providesa reference return display to the user in response to the referencereturn value.

The user reference selection may comprise at least one selection valueselected from the selection values consisting of: a selection by theuser indicating that a reference look-up operation is requested; aselection by the user indicating that a reference look-up operation isinstructed; a selection by the user indicating that a reference look-upoperation is contextually indicated; a user tool button selection; aspecified character entry by the user; a specified character sequenceentry by the user; and a utility action entered by the user.

The user reference selection may comprise one of a specified characterentry by the user or a specified character sequence entry by the user,wherein the reference management circuit is further structured tointerpret a precursor character, and to determine that the userreference selection is intended for display in response to the precursorcharacter.

The reference management circuit may be further structured to update theuser reference selection.

The reference management circuit may be further structured to update theuser reference selection in response to at least one event selected fromthe events consisting of: a periodic time expiration; a user request toupdate the user reference selection; a change in the user referenceselection; and a contextual indication corresponding to at least one ofthe user or the client computing device.

The reference management circuit may be further structured to determinethe reference return value in response to at least one of: responsiveinformation within the document, responsive information within the dataelement, or responsive information within a source data.

The reference return value may comprise at least one of metadata, a tag,or a value determined in a semantic match.

The reference return value may comprise at least one value selected fromthe values consisting of: an object name value; a result value from atleast one of an object or a formula;

a significant word return; and a data value.

The reference return value may comprise a significant word return, andwherein the reference management circuit is further structured todetermine the significant word return in response to at least one of: aunique sequence of characters; a frequency of occurrence of a word; aword comprising a term of art; or a word comprising an entity reference.

The reference return value may comprise ancillary information based uponthe responsive information.

The reference management circuit may be further structured to perform ascope change comprising at least one of broadening a view of the userreference selection or narrowing a view of the user reference selection;wherein the scope change is based upon an amount of the responsiveinformation.

The reference management circuit may be further structured to determinethe responsive information in response to rules from at least one of: atemplate document, provided by an administrator, or provided by theuser.

The reference management circuit may be further structured to prioritizethe responsive information in response to rules from at least one of: atemplate document, provided by an administrator, or provided by theuser.

The user display circuit may be further structured to provide thereference return display comprising a plurality of responsiveinformation elements in response to the reference return value.

The user display circuit may be further structured to provide thereference return display further comprising an indication of additionalpotentially responsive information.

The user reference selection may comprise at least one of a web site, auniform resource locator (URL), a network location, or a document name,and wherein the at least one of the website, the URL, the networklocation, or the document name comprises data that is not included inthe scope of the document server, wherein the scope of the documentserver comprises at least one of the document, the data element, or thesource data.

An embodiment of the present disclosure includes a method, comprisinginterpreting a user selection comprising at least one data value;interpreting a second user selection comprising an extract value;creating a data view in response to the user selection; and displayingat least a portion of the data view in response to the extract value.

The interpreting the user selection may comprise at least one operationselected from the operations consisting of: receiving a user-enteredkeyword; determining at least one data value selected by a user;determining a tag value selected by a user; and determining a selectedrange value in response to the user selection.

The at least one data value may comprise at least one data valueselected from the values consisting of: a table column; a table row; astyle tag; an arbitrary tag; a linked data value; a data referencevalue; and a data record.

The at least one data value may comprise an inferred data value, andwherein interpreting the user selection further comprises determiningthe inferred data value in response to at least one operation selectedfrom the operations consisting of: determining the inferred data valuein response to a document type value; determining the inferred datavalue in response to a document location value; determining the inferreddata value in response to a predefined data association value, anddetermining the predefined data association value in response to atleast one of a template data association value or a user selected dataassociation value; determining the inferred data value in response to aprior user operation; prompting a user with a plurality of dataassociation values, and determining the inferred data value in responseto one of a user selected data association value and a default dataassociation value; and determining the inferred data value in responseto a priority value associated with each of a plurality of related datavalues.

The interpreting the second user selection may further comprise at leastone operation selected from the operations consisting of: determining adocument extract location value; and determining an extracted data typevalue.

The creating a data view in response to the user selection may compriseat least one operation selected from the operations consisting of:creating a table of extracted data; creating a formatted display ofextracted data; creating a structured data view of extracted data;creating an aggregated data view of extracted data; and creating a listof extracted data.

The data view may comprise a card.

The extracted data may comprise at least one of: data corresponding tothe user selection; linked data determined in response to the userselection; and referenced data determined in response to the userselection.

The extracted data may comprise a portion of at least one of the datacorresponding to the user selection, the linked data, or the referenceddata, and wherein the creating a data view further comprises determiningthe portion in response to an extraction context parameter.

An embodiment of the present disclosure may further comprise determiningthe extraction context parameter by performing at least one operationselected from the operations consisting of: interpreting a userinteraction history with a document; interpreting a user contextselection;

determining the extraction context parameter in response to a documenttype value; determining the extraction context parameter in response toa document location value; determining the extraction context parameterin response to a prior user operation; determining the extractioncontext parameter in response to at least one of a template dataassociation value or a user selected data association value; prompting auser with a plurality of extraction context parameter values, anddetermining the extraction context parameter in response to one of auser selected extraction context parameter value and a defaultextraction context parameter value; and

determining the extraction context parameter value in response to thesecond user selection.

An embodiment of the present disclosure may further compriseinterpreting a user data change input value, the user data change inputvalue comprising a change to the displayed portion of the data view, andin response to the user data change input value, updating a source datacomprising the at least one data value.

The created data view may comprise a card.

The created data view may comprise a structured data view.

The source data may comprise unstructured data.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection; a user display circuit structured to display at least aportion of the data view in response to the extract value.

The user interaction circuit may be further structured to interpret theuser selection by performing at least one operation selected from theoperations consisting of: receiving a user-entered keyword; determiningat least one data value selected by a user; determining a tag valueselected by a user; and determining a selected range value in responseto the user selection.

The at least one data value may comprise at least one data valueselected from the values consisting of: a table column; a table row; astyle tag; an arbitrary tag; a linked data value; a data referencevalue; and a data record.

The user interaction circuit may be further structured to provide the atleast one data value as an inferred data value.

The user interaction circuit may be further structured to determine theinferred data value by performing at least one operation selected fromthe operations consisting of: determining the inferred data value inresponse to a document type value; determining the inferred data valuein response to a document location value; determining the inferred datavalue in response to a predefined data association value, anddetermining the predefined data association value in response to atleast one of a template data association value or a user selected dataassociation value; determining the inferred data value in response to aprior user operation; prompting a user with a plurality of dataassociation values, and determining the inferred data value in responseto one of a user selected data association value and a default dataassociation value; and determining the inferred data value in responseto a priority value associated with each of a plurality of related datavalues.

The extracted data generation circuit may be further structured tointerpret the second user selection by performing at least one operationselected from the operations consisting of: determining a documentextract location value; and determining an extracted data type value.

The extracted data generation circuit may be further structured tocreating a data view in response to the user selection by performing atleast one operation selected from the operations consisting of: creatinga table of extracted data; creating a formatted display of extracteddata; creating a structured data view of extracted data; creating anaggregated data view of extracted data; and creating a list of extracteddata.

The data view may further comprise a card.

The extracted data may comprise at least one of: data corresponding tothe user selection; linked data determined in response to the userselection; and referenced data determined in response to the userselection.

The extracted data may comprise a portion of at least one of the datacorresponding to the user selection, the linked data, or the referenceddata, and wherein the creating a data view further comprises determiningthe portion in response to an extraction context parameter.

The extracted data generation circuit may be further structured todetermine the extraction context parameter by performing at least oneoperation selected from the operations consisting of: interpreting auser interaction history with a document;

interpreting a user context selection; determining the extractioncontext parameter in response to a document type value; determining theextraction context parameter in response to a document location value;determining the extraction context parameter in response to a prior useroperation; determining the extraction context parameter in response toat least one of a template data association value or a user selecteddata association value; prompting a user with a plurality of extractioncontext parameter values, and determining the extraction contextparameter in response to one of a user selected extraction contextparameter value and a default extraction context parameter value; anddetermining the extraction context parameter value in response to thesecond user selection.

The user interaction circuit may be further structured to interpret auser data change input value, the user data change input valuecomprising a change to the displayed portion of the data view, and inresponse to the user data change input value, updating a source datacomprising the at least one data value.

The created data view may comprise a card.

The created data view may comprise a structured data view.

The source data may comprise unstructured data.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device;

to receive a user document change input value, and to create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument;

to update the first document view in response to the user documentchange input value; and

to communicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

The first computing device may be further communicatively coupled to athird computing device, wherein the document server is furtherstructured to communicate the first operation log to the third computingdevice, and wherein the third computing device is structured to: createa second document view in response to the first operation log, thesecond document view comprising content generated using at least aportion of the first operation log; to receive a second user documentchange input value, and to create a second local operation log inresponse to the first operation log and the second user document changeinput value; and to communicate a second change value for the firstoperation log to the first computing device in response to the firstoperation log and the second local operation log.

An embodiment of the present disclosure may further comprise anarbitration circuit structured to construct a second operation log inresponse to the first operation log, the change value, and the secondchange value.

An embodiment of the present disclosure may further comprise localoperation log may comprise a first record of operations which, ifimplemented on a document, would provide a document having editsconsistent with the user document change input value, and wherein thesecond local operation log comprises a second record of operationswhich, if implemented on a document, would provide a document havingedits consistent with the second user document change input value.

The arbitration circuit may be further structured to applynon-conflicting operations of the local operation log and the secondlocal operation log, and to resolve conflicting operations of the localoperation log and the second local operation log.

The arbitration circuit may be further structured to resolve theconflicting operations of the local operation log and the second localoperation log by performing at least one operation selected from theoperations consisting of: applying individual operations in a priorityselected according to a time stamp corresponding to each operation;applying operations in a priority selected according to a time stamp ofthe local operation log and second local operation log; applyingoperations in a priority selected according to an associated priority ofat least one of the second computing device, the third computing device,and a user associated with one of the second and third computingdevices; and applying operations in a priority selected according to atime of communication of the operations to the first computing device.

The arbitration circuit may be further structured to resolve theconflicting operations of the local operation log and the second localoperation log by performing at least one operation selected from theoperations consisting of: applying individual operations in a priorityselected according to a type of at least one of the conflictingoperations; applying individual operations in a priority selectedaccording to a relationship between: at least one of the secondcomputing device, the third computing device, and a user associated withone of the second and third computing devices; and a reference region ofa document that would be affected by at least one of the conflictingoperations; applying individual operations in a priority selected inresponse to a performance characteristic of at least one of the secondand third computing devices;

applying individual operations in a priority selected in response to anindicated importance value corresponding to at least one of theconflicting operations; applying individual operations in a priorityselected in response to a conflict management difficulty value; applyingindividual operations in a priority selected in response to at least oneof: a number of operations represented in at least one of the localoperation log and the second local operation log; a document editingtime corresponding to at least one of the second computing device andthe third computing device; one of a change amount and a change rate ofa reference region of a document that would be affected by at least oneof the conflicting operations; a number of computing devices that haveat least one characteristic selected from the characteristics consistingof: are currently accessing a reference region of a document that wouldbe affected by at least one of the conflicting operations; have recentlyaccessed a reference region of a document that would be affected by atleast one of the conflicting operations; are currently editing areference region of a document that would be affected by at least one ofthe conflicting operations; and have recently edited a reference regionof a document that would be affected by at least one of the conflictingoperations.

The arbitration circuit may be at least partially included on at leastone of the first computing device, the second computing device, and thethird computing device.

The arbitration circuit may be included on the second computing device,wherein the first computing device communicates the second change valueto the second computing device.

The arbitration circuit may be further structured to update the changevalue in response to the second local operating log, and to communicatethe updated change value to the first computing device.

The first computing device may be further structured to determine asnapshot, the snapshot comprising at least one sequential operationdefining at least one second sequential operation, wherein the at leastone second sequential operation, if executed, results in an equivalentdocument to the first document.

The first computing device may provide the snapshot as the firstoperation log.

The snapshot may comprise at least one of: the second sequentialoperation comprising fewer processor operations than the firstsequential operation; the second sequential operation comprising fewerlogical operations than the first sequential operation; the secondsequential operation comprising a simplified description of operationsthan the first sequential operation; and the second sequential operationcomprising lumped operations relative to the first sequential operation.

The first computing device may determine the snapshot in response to atleast one event selected from the events consisting of: receiving thecommunicated change value from the second computing device, wherein thedetermining the snapshot further comprises updating the snapshot toreflect operations from the communicated change value; a lapse of apredetermined time period; a lapse of a predetermined time period sincea last communication of the change value; a request from the secondcomputing device; an initial operation to open a document; an operationto close a document; a determination that a predetermined efficiencythreshold is exceeded by determining the snapshot; an operation to savea document; an operation to save a document as a new document; a requestto access a document related to the first operation log from anothercomputing device; a change value exceeding a predetermined amount ofchange; a change value directed to a predetermined categorical change; aloss of communication with the second computing device; areestablishment of communication with the second computing device; anoperation to print at least a portion of a document related to the firstoperation log; an operation to publish at least a portion of a documentrelated to the first operation log; and a determination that determiningand communicating the snapshot will not interfere with an operation ofthe second computing device on a document related to the first operationlog.

An embodiment of the present disclosure may further comprise anarbitration circuit structured to construct a second operation log inresponse to the first operation log, the change value, and the secondchange value; and wherein the first computing device is furtherstructured to determine the snapshot by determining a provisionalsnapshot, and in response to determining that the provisional snapshotis compatible with the second operation log, over-write the snapshot asthe provisional snapshot.

An embodiment of the present disclosure includes a method, comprising:receiving a first operation log from a first computing device, the firstoperation log comprising at least one first sequential operationdefining operations to create a first document; creating a firstdocument view in response to the first operation log, the document viewcomprising content generated using at least a portion of the firstoperation log; providing the first document view to a display device;receiving a user document change input value, and creating a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument;

updating the first document view in response to the user document changeinput value; and

communicating a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

An embodiment of the present disclosure may further comprise receiving asecond change value from the first computing device, the second changevalue comprising at least one sequential operation to add to the firstoperation log, and defining operations to create a third document; andcreating a second local operation log in response to the first operationlog and the second change value.

The creating the local operation log may comprise creating a firstrecord of operations which, if implemented on a document, would providea document having edits consistent with the user document change inputvalue; and wherein creating the second local operation log comprisescreating a second record of operations which, if implemented on adocument, would provide a document having edits consistent with thesecond user document change input value.

An embodiment of the present disclosure may further comprise applyingnon-conflicting operations of the local operation log and the secondlocal operation log, and resolving conflicting operations of the localoperation log and the second local operation log.

The resolving the conflicting operations of the local operation log andthe second local operation log may comprise performing at least oneoperation selected from the operations consisting of: applyingindividual operations in a priority selected according to a time stampcorresponding to each operation; applying operations in a priorityselected according to a time stamp of the local operation log and secondlocal operation log; applying operations in a priority selectedaccording to an associated priority of at least one of a secondcomputing device receiving the user document change input value and athird computing device providing the second change value; applyingoperations in a priority selected according to an associated priority ofat least one of a user associated with a second computing devicereceiving the user document change input value or a user associated witha third computing device providing the second change value; and applyingoperations in a priority selected according to a time of communicationof the operations to the first computing device.

The resolving the conflicting operations of the local operation log andthe second local operation log may comprise performing at least oneoperation selected from the operations consisting of:

applying individual operations in a priority selected according to atype of at least one of the conflicting operations; applying individualoperations in a priority selected according to a relationship between:at least one of the second computing device, the third computing device,and a user associated with one of the second and third computingdevices; and

a reference region of a document that would be affected by at least oneof the conflicting operations; applying individual operations in apriority selected in response to a performance characteristic of atleast one of the second and third computing devices;

applying individual operations in a priority selected in response to anindicated importance value corresponding to at least one of theconflicting operations; applying individual operations in a priorityselected in response to a conflict management difficulty value; applyingindividual operations in a priority selected in response to at least oneof: a number of operations represented in at least one of the localoperation log and the second local operation log; a document editingtime corresponding to at least one of the second computing device andthe third computing device; one of a change amount and a change rate ofa reference region of a document that would be affected by at least oneof the conflicting operations; a number of computing devices that haveat least one characteristic selected from the characteristics consistingof: are currently accessing a reference region of a document that wouldbe affected by at least one of the conflicting operations; have recentlyaccessed a reference region of a document that would be affected by atleast one of the conflicting operations; are currently editing areference region of a document that would be affected by at least one ofthe conflicting operations; and have recently edited a reference regionof a document that would be affected by at least one of the conflictingoperations.

The resolving the conflict may be at least partially performed on atleast one of the first computing device, the second computing device,and the third computing device.

The resolving the conflict may be performed on the second computingdevice, wherein the first computing device communicates the secondchange value to the second computing device.

The second computing device may update the change value in response tothe second local operating log, and communicates the updated changevalue to the first computing device.

An embodiment of the present disclosure may further comprise determininga snapshot, the snapshot comprising at least one sequential operationdefining at least one second sequential operation, wherein the at leastone second sequential operation, if executed, results in an equivalentdocument to the first document.

An embodiment of the present disclosure may further comprise providingthe snapshot as the first operation log.

The snapshot may comprises at least one of: determining the secondsequential operation comprising fewer processor operations than thefirst sequential operation; determining the second sequential operationcomprising fewer logical operations than the first sequential operation;determining the second sequential operation comprising a simplifieddescription of operations than the first sequential operation; anddetermining the second sequential operation comprising lumped operationsrelative to the first sequential operation.

An embodiment of the present disclosure may further comprise determiningthe snapshot in response to at least one event selected from the eventsconsisting of: the first computing device receiving the communicatedchange value, wherein the determining the snapshot further comprisesupdating the snapshot to reflect operations from the communicated changevalue; a lapse of a predetermined time period; a lapse of apredetermined time period since a last communication of the changevalue; a request from a second computing device; an initial operation toopen a document; an operation to close a document; a determination thata predetermined efficiency threshold is exceeded by determining thesnapshot; an operation to save a document; an operation to save adocument as a new document; a request to access a document related tothe first operation log from another computing device; a change valueexceeding a predetermined amount of change; a change value directed to apredetermined categorical change; a loss of communication between thefirst computing device and a second computing device; a reestablishmentof communication between the first computing device and a secondcomputing device; an operation to print at least a portion of a documentrelated to the first operation log; an operation to publish at least aportion of a document related to the first operation log; and adetermination that determining and communicating the snapshot will notinterfere with an operation of a second computing device on a documentrelated to the first operation log.

An embodiment of the present disclosure includes a method, comprising:communicating a first operation log from a first computing device to asecond computing device and a third computing device, the firstoperation log comprising at least one first sequential operationdefining operations to create a first document; receiving a change valuefor the first operation log from the second computing device, the changevalue comprising at least one sequential operation defining operationsto create a second document including changes relative to the firstoperation log; receiving a second change value for the first operationlog from the third computing device, the second change value comprisingat least one sequential operation defining operations to create a thirddocument including changes relative to the first operation log;communicating the second change value to the second computing device;and receiving an updated change value from the second computing device,the updated change value comprising a conflicts resolving change valuebetween the change value and the second change value.

An embodiment of the present disclosure may further comprisecommunicating the updated change value to the third computing device.

An embodiment of the present disclosure may further comprise determininga snapshot, the snapshot comprising at least one sequential operationdefining at least one second sequential operation, wherein the at leastone second sequential operation, if executed, results in an equivalentdocument to the first document.

An embodiment of the present disclosure may further comprise providingthe snapshot as the first operation log, and wherein determining thesnapshot may comprise at least one of: determining the second sequentialoperation comprising fewer processor operations than the firstsequential operation; determining the second sequential operationcomprising fewer logical operations than the first sequential operation;determining the second sequential operation comprising a simplifieddescription of operations than the first sequential operation; anddetermining the second sequential operation comprising lumped operationsrelative to the first sequential operation.

An embodiment of the present disclosure may further comprise determiningthe snapshot in response to at least one event selected from the eventsconsisting of: the first computing device receiving the communicatedchange value, wherein the determining the snapshot further comprisesupdating the snapshot to reflect operations from the communicated changevalue; a lapse of a predetermined time period; a lapse of apredetermined time period since a last communication of the changevalue; a request from a second computing device; an initial operation toopen a document; an operation to close a document; a determination thata predetermined efficiency threshold is exceeded by determining thesnapshot; an operation to save a document; an operation to save adocument as a new document; a request to access a document related tothe first operation log from another computing device; a change valueexceeding a predetermined amount of change; a change value directed to apredetermined categorical change; a loss of communication between thefirst computing device and a second computing device; a reestablishmentof communication between the first computing device and a secondcomputing device; an operation to print at least a portion of a documentrelated to the first operation log; an operation to publish at least aportion of a document related to the first operation log; and adetermination that determining and communicating the snapshot will notinterfere with an operation of a second computing device on a documentrelated to the first operation log.

An embodiment of the present disclosure may further comprise determiningthe snapshot by determining a provisional snapshot, and in response todetermining that the provisional snapshot is compatible with the updatedchange value, over-writing the snapshot as the provisional snapshot.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view tothe user in response to the data element; a data management circuitstructured to interpret a user table selection value, and to determineat least one of a table data update or a table configuration update inresponse to the user table selection value; and wherein the user displaycircuit is further structured to update a second view in response to theat least one of the table data update or the table configuration update.

The data element may comprise a first table having source informationand a second table having linked information to the source information,and wherein the user table selection value comprises at least one valueselected from the values consisting of: a rule for operating the firsttable and the second table in response to user inputs; a data change onat least one of the first table or the second table; and a configurationchange on at least one of the first table or the second table.

The data element may comprise a first table having source informationand a second table having linked information to the source information,wherein the user table selection value comprises a data change to thesecond table, and wherein the data management circuit is furtherstructured to update a corresponding data value on the first table inresponse to the data change

The user table selection value may further comprise a formatting changeto the second table, and wherein the data management circuit does notupdate a format of the first table.

The data element may comprise a first table having source informationand a second table having linked information to the source information,wherein the user table selection value comprises a first data change toa first column of the second table and a second data change to a secondcolumn of the second table, and wherein the data management circuit isfurther structured to update a first corresponding data value on thefirst table in response to the first data change, and does not update asecond corresponding data value on the first table in response to thesecond data change.

The user display circuit may be further structured to, in response tothe second data change, perform an operation selected from theoperations consisting of: notify the user that the second data changewas not updated on the first table; change a formatting of a data valueon the second table corresponding to the second data change; and promptthe user whether to update the second corresponding data value on thefirst table.

The data element may comprise a first table having source informationand a second table having linked information to the source information,wherein the user table selection value comprises a deletion of a columnon the second table, and wherein the data management circuit does notdelete a corresponding column on the first table.

The data element may comprise a first table having source informationand a second table having linked information to the source information,and wherein the user table selection value comprises at least one valueselected from the values consisting of: a format change, a deletion, asorting operation, and a filtering operation.

The data element may comprise a first table having source informationand a second table having linked information to the source information,and wherein the user table selection value comprises a first user tableselection value corresponding to a first user, wherein the datamanagement circuit is further structured to interpret a second usertable selection value corresponding to a second user, and to determineat least one of a second table data update or a second tableconfiguration update in response to the second user table selectionvalue, and wherein the user display circuit is further structured toprovide a third view to the second user in response to at least one ofthe second table data update or the second table configuration update.

The document server may be further structured to update at least one ofthe document or the data element in response to a source data change.

The source data change may comprise a change of data at least partiallyincluded on one of: a website; a database external to the documentserver; or a cloud server external to the document server.

The user interaction circuit may be further structured to provide analert to the user in response to the update.

The user interaction circuit may be further structured to provide analert to the user in response to at least one of: a change in thedocument; a change in a selected object in the document; an access ofthe document by a second user; an access of an object of the document bya second user; or an unlocking event of an object of the document by asecond user.

The data element may comprise source data external to the document.

The source information may be at least partially external to thedocument, and wherein at least one of the first table and the secondtable may comprise information external to the document.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to create a data viewin response to the user selection; and a user display circuit structuredto display at least a portion of the data view in response to the userselection.

The user interaction circuit may be further structured to interpret auser data entry, wherein the data management circuit is furtherstructured to provide an external source data option in response to theuser data entry, and wherein the user display circuit is furtherstructured to update at least a portion of the data view in response tothe external source data option

The external source data may comprise read-only data.

The user interaction circuit may be further structured to interpret auser data entry comprising an edit of at least one data value, andwherein the data management circuit is further structured to update theexternal source data in response to the user data entry.

The data management circuit may be further structured to query theexternal source data and to provide an update of the data view inresponse to the query, and wherein the user display circuit is furtherstructured to update the display in response to the updated data view.

The data management circuit may be further structured to perform thequery operation in response to at least one of: an update timeexpiration; a notification from an external device hosting the externalsource; a change in a second data value having a dependency on theexternal source data; a change in an object having a dependency on theexternal source data; a creation of a second data value having adependency on the external source data; and a creation of an objecthaving a dependency on the external source data; and a request toprovide a continuous update of the at least one data value.

The user selection may comprise a data source identifier.

The data source identifier may comprise at least one data sourceidentifier selected from the list consisting of: a uniform resourcelocator; a network location; a file name; an external source applicationprogramming interface reference; and an external source accessreference.

The user interaction circuit may be further structured to interpret auser data request value, and wherein the data management circuit may befurther structured to provide an external source data option in responseto the user data request value, where the external source data optionmay comprise the data source identifier.

The user data request value may consist of at least one of a contentbased request or a subject matter based request.

An embodiment of the present disclosure includes a method, comprising:interpreting a user selection comprising at least one data valuecomprising at least a portion of a document, and wherein the at leastone data value comprises at least one of a reference or a link to anexternal source data; creating a data view in response to the userselection; and displaying at least a portion of the data view inresponse to the user selection.

An embodiment of the present disclosure may further compriseinterpreting a user data entry, providing an external source data optionin response to the user data entry, updating at least a portion of thedata view in response to the external source data option.

The external source data may comprise read-only data.

An embodiment of the present disclosure may further compriseinterpreting a user data entry may comprise an edit of the at least onedata value, and updating the external source data in response to theuser data entry.

An embodiment of the present disclosure may further comprise performingthe querying in response to a data update of the external source.

An embodiment of the present disclosure may further comprise queryingthe external source data, providing an update of the data view inresponse to the query, and updating the display in response to theupdated data view.

An embodiment of the present disclosure may further comprise performingthe querying in response to an update time expiration.

An embodiment of the present disclosure may further comprise performingthe querying in response to a notification from an external devicehosting the external source.

An embodiment of the present disclosure may further comprise performingthe querying in response to one of a change in a second data value or acreation of a second data value, the second data value having adependency on the external source data.

An embodiment of the present disclosure may further comprise performingthe querying in response to one of a change in an object or a creationof an object, the object having a dependency on the external sourcedata.

An embodiment of the present disclosure may further comprise breakingthe at least one of the link or reference after the operation to createthe data view.

The user selection may comprise a data source identifier.

The data source identifier may comprise at least one data sourceidentifier selected from the list consisting of: a uniform resourcelocator; a network location; a file name; an external source applicationprogramming interface reference; and an external source accessreference.

An embodiment of the present disclosure may further compriseinterpreting a user data request value, and providing an external sourcedata option in response to the user data request value, where theexternal source data option comprises the data source identifier.

The user data request value may consist of at least one of a contentbased request or a subject matter based request.

An embodiment of the present disclosure includes a method, comprising:accessing a data element; providing a first view in response to the dataelement, the first view comprising at least a portion of the dataelement; determining a visualization element (VE) in response to thedata element, and further in response to at least one of: a uservisualization selection or a user context value; and providing a secondview in response to the VE and the data element.

The user visualization selection may comprise at least one valuedetermined according to at least one operation selected from theoperations consisting of: interpreting a user selection value comprisinga primary table and a secondary table; interpreting a user selectionvalue comprising at least one value selected from the values consistingof: a row selection, a column selection, and a data value selection;determining a plurality of discrete options in response to the usercontext value, and interpreting a user selection value comprising atleast one of the discrete options; determining a plurality of discreteoptions in response to at least one parameter selected from theparameters consisting of: a document type value, a document locationvalue, a prior user operation, a template data association value, and auser selected data association value; and interpreting a user selectionvalue comprising at least one of the discrete options; determining atleast one continuous option in response to the user context value, andinterpreting a user selection value comprising the at least onecontinuous option; and determining at least one continuous option inresponse to at least one parameter selected from the parametersconsisting of: a document type value, a document location value, a prioruser operation, a template data association value, and a user selecteddata association value; and interpreting a user selection valuecomprising the at least one continuous option.

An embodiment of the present disclosure may further comprise determiningthe user visualization selection in response to a user control input.

The user control input may comprise a user selection value from aplurality of discrete options.

An embodiment of the present disclosure may further comprise determiningat least one profile value in response to the user control input,wherein the profile value comprises at least one profile value selectedfrom the profile values consisting of: a sorting profile, a datahierarchy profile, a filtering profile, an aggregating profile, and aformatting profile; and

determining the VE further in response to the profile value.

An embodiment of the present disclosure may further comprise determiningthe plurality of discrete options in response to at least one parameterselected from the parameters consisting of: a time value, a selectedrange of time values, a data field value, a selected range of data fieldvalues, a data reference value, and a selected range of valuescorresponding to the data reference value.

The user control input may comprise a user selection value from at leastone continuous option.

An embodiment of the present disclosure may further comprise determiningat least one profile value in response to the at least one continuousoption, wherein the profile value comprises at least one profile valueselected from the profile values consisting of: a sorting profile, adata hierarchy profile, a filtering profile, an aggregating profile, anda formatting profile; and

determining the VE further in response to the profile value.

The at least one continuous option may comprise a time display, andwherein the user control input comprises at least one of a time value ora selected range of time values.

The at least one continuous option may comprise a data field display,and wherein the user control input comprises at least one of a selecteddata field value corresponding to the data field display or a selectedrange of data field values corresponding to the data field display.

The at least one continuous option may comprise a data reference value,and wherein the user control input comprises at least one of a selecteddata reference value or a selected range of values corresponding to theselected data reference value.

The VE may comprise at least one VE selected from the VEs consisting of:a graph, a chart, a structured data view, a display of text, a table, atable row, a table column, a table heading, a format option for any ofthe preceding, and a format option for at least a portion of any of thepreceding.

An embodiment of the present disclosure may further comprise determiningthe VE in response to a user entered formula.

An embodiment of the present disclosure may further comprise determiningat least one profile value in response to the user entered formula,wherein the profile value comprises at least one profile value selectedfrom the profile values consisting of: a sorting profile, a datahierarchy profile, a filtering profile, an aggregating profile, and aformatting profile; and

determining the VE further in response to the profile value.

The VE may comprise a format option for at least a portion of a displayof text.

An embodiment of the present disclosure may further comprise determiningthe VE in response to a user entered formula.

An embodiment of the present disclosure may further compriseinterpolating between a plurality of format options for at least aportion of the display of text.

The VE may comprise at least one of a graph or a chart, the methodfurther comprising adjusting the second view in response to a userchange input.

An embodiment of the present disclosure may further comprise updatingthe data element in response to the user change input.

The user change input may comprise a user interaction with a graphicalelement of the one of the graph or the chart.

The VE may comprise one of an output table and a structured data view,the method further comprising adjusting the second view in response to auser change input.

An embodiment of the present disclosure may further comprise updatingthe data element in response to the user change input.

An embodiment of the present disclosure may further comprise determiningthe user change input in response to a drag-and-drop operation.

The adjusting may comprise at least one operation selected from theoperations consisting of: re-sorting at least a portion of the secondview, changing a hierarchy of at least a portion of the second view,filtering at least a portion of the second view, aggregating datacomprising at least a portion of the second view, inheriting a formatfrom a portion of the data element and applying the inherited format toat least a portion of the second view, inheriting a format from anobject selected in the drag-and-drop operation and applying theinherited format to at least a portion of the second view.

The adjusting may comprise inheriting a visualization parameter from anobject selected in the drag-and-drop operation and applying theinherited visualization parameter to at least a portion of the secondview.

The object may comprise at least one object selected from the objectsconsisting of: a data value, a graph, a chart, a table, a table row, anda table column.

The visualization parameter may comprise at least one parameter selectedfrom the parameters consisting of: a sorting description, a filteringdescription, a formatting description, an aggregation description, and adisplay value description.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user display circuitstructured to provide a first view in response to the data element, thefirst view comprising at least a portion of the data element; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data element, and further in response toat least one of: a user visualization selection or a user context value;and wherein the user display circuit is further structured to provide asecond view in response to the VE and the data element.

The VT circuit may be further structured to interpret a user selectionvalue comprising a primary table and a secondary table, and to determinethe VE further in response to the user selection value.

The VT circuit may be further structured to: interpret a user selectionvalue comprising at least one value selected from the values consistingof: a row selection, a column selection, and a data value selection; anddetermine the VE further in response to the user selection value.

The VT circuit may be further structured to: determine a plurality ofdiscrete options in response to the user context value; interpret a userselection value comprising at least one of the discrete options; anddetermine the VE further in response to the user selection value.

The VT circuit may be further structured to: determine a plurality ofdiscrete options in response to at least one parameter selected from theparameters consisting of: a document type value, a document locationvalue, a prior user operation, a template data association value, and auser selected data association value; interpreting a user selectionvalue comprising at least one of the discrete options; and determine theVE further in response to the user selection value.

The VT circuit may be further structured to: determine at least onecontinuous option in response to the user context value; interpret auser selection value comprising at least one of the discrete options;and determine the VE further in response to the user selection value.

The VT circuit may be further structured to: determine at least onecontinuous option in response to at least one parameter selected fromthe parameters consisting of: a document type value, a document locationvalue, a prior user operation, a template data association value, and auser selected data association value; interpret a user selection valuecomprising at least one of the continuous options; and determine the VEfurther in response to the user selection value.

The VT circuit may be further structured to determine the uservisualization selection in response to a user control input.

The user control input may comprise a user selection value from aplurality of discrete options.

The VT circuit is further structured to: determine at least one profilevalue in response to the user control input, wherein the profile valuecomprises at least one profile value selected from the profile valuesconsisting of: a sorting profile, a data hierarchy profile, a filteringprofile, an aggregating profile, and a formatting profile; and determinethe VE further in response to the profile value.

The VT circuit may be further structured to determine the plurality ofdiscrete options in response to at least one parameter selected from theparameters consisting of: a time value, a selected range of time values,a data field value, a selected range of data field values, a datareference value, and a selected range of values corresponding to thedata reference value.

The user control input may comprise a user selection value from at leastone continuous option.

The VT circuit may be further structured to: determine at least oneprofile value in response to the user control input, wherein the profilevalue comprises at least one profile value selected from the profilevalues consisting of: a sorting profile, a data hierarchy profile, afiltering profile, an aggregating profile, and a formatting profile; anddetermine the VE further in response to the profile value.

The at least one continuous option may comprise a time display, andwherein the user control input comprises at least one of a time value ora selected range of time values.

The at least one continuous option may comprise a data field display,and wherein the user control input comprises at least one of a selecteddata field value corresponding to the data field display or a selectedrange of data field values corresponding to the data field display.

The at least one continuous option may comprise a data reference value,and wherein the user control input comprises at least one of a selecteddata reference value or a selected range of values corresponding to theselected data reference value.

The VE may comprise at least one VE selected from the VEs consisting of:a graph, a chart, a structured data view, a display of text, a table, atable row, a table column, a table heading, a format option for any ofthe preceding, and a format option for at least a portion of any of thepreceding.

The VT circuit may be further structured to determine the VE in responseto a user entered formula.

The VT circuit may be further structured to: determine at least oneprofile value in response to the user entered formula, wherein theprofile value comprises at least one profile value selected from theprofile values consisting of: a sorting profile, a data hierarchyprofile, a filtering profile, an aggregating profile, and a formattingprofile; and determine the VE further in response to the profile value.

The VE may comprise a format option for at least a portion of a displayof text.

The VT circuit may be further structured to determine the VE in responseto a user entered formula.

The VT circuit may be further structured to interpolate between aplurality of format options for at least a portion of the display oftext.

The VE may comprise at least one of a graph or a chart, and wherein theVT circuit is further structured to adjust the second view in responseto a user change input.

The VT circuit may be further structured to update the data element inresponse to the user change input.

The user change input may comprise a user interaction with a graphicalelement of the one of the graph or the chart.

The VE may comprise one of an output table and a structured data view,and wherein the VT circuit is further structured to adjust the secondview in response to a user change input.

The client computing device may further comprise a data managementcircuit structured to update the data element in response to the userchange input.

The VT circuit may be further structured to determine the user changeinput in response to a drag-and-drop operation.

The VT circuit may be further structured to adjust the second view byre-sorting at least a portion of the second view.

The VT circuit may be further structured to adjust the second view bychanging a hierarchy of at least a portion of the second view.

The VT circuit may be further structured to adjust the second view byfiltering at least a portion of the second view.

The VT circuit may be further structured to adjust the second view byaggregating data comprising at least a portion of the second view.

The VT circuit may be further structured to adjust the second view byinheriting a format from a portion of the data element and applying theinherited format to at least a portion of the second view.

The VT circuit may be further structured to adjust the second view byinheriting a format from an object selected in the drag-and-dropoperation and applying the inherited format to at least a portion of thesecond view.

The VT circuit may be further structured to adjust the second view byinheriting a visualization parameter from an object selected in thedrag-and-drop operation and applying the inherited visualizationparameter to at least a portion of the second view.

The object may comprise at least one object selected from the objectsconsisting of: a data value, a graph, a chart, a table, a table row, anda table column.

The visualization parameter may comprise at least one parameter selectedfrom the parameters consisting of: a sorting description, a filteringdescription, a formatting description, an aggregation description, and adisplay value description.

An embodiment of the present disclosure includes a method, comprising:interpreting a user notification profile value comprising a notificationtrigger value and a notification response value; interpreting a datavalue comprising at least a portion of a document; determining whetheran event trigger has occurred in response to the notification triggervalue and the data value; and providing a notification to a user inresponse to the event trigger and the notification response value.

The notification trigger value may comprise a keyword, and wherein thedetermining whether the event trigger has occurred comprises determiningwhether another user has performed one of: entering, editing, ordeleting the keyword in the document.

The notification trigger value may comprise an update value for at leastone parameter in the data value, and wherein the determining whether theevent trigger has occurred comprises determining whether the updatevalue indicates the at least one parameter has been updated.

The notification trigger value may comprise a status value for at leastone parameter in the data value, and wherein the determining whether theevent trigger has occurred comprises at least one operation selectedfrom the operations consisting of: determining the status value haschanged; determining the status value has updated; determining thestatus value is equal to a predetermined value; determining the statusvalue has exceeded a predetermined threshold; and determining the statusvalue has fallen below a predetermined threshold.

The notification trigger value may comprise at least one value selectedfrom the values consisting of: a predetermined time period; apredetermined external event occurrence; a predetermined specific useraccessing the document; a predetermined user role accessing thedocument; a predetermined document object edit value; and apredetermined document section edit value.

The notification trigger value may comprise a process state value.

The process state value may comprise at least one value selected fromthe values consisting of: a recruiting process state value; a projectmilestone value; a task occurrence value; a task progression value; anorder occurrence value; an order validity value; a design change requestvalue; and a problem report value.

The notification trigger value may comprise a status value for at leastone parameter in a location selected from: the data value, the document,and a source data.

The determining whether the event trigger has occurred may comprise atleast one operation selected from the operations consisting of:determining the status value has changed; determining the status valuehas updated; determining the status value is equal to a predeterminedvalue; determining the status value has exceeded a predeterminedthreshold; and determining the status value has fallen below apredetermined threshold.

The notification response value may comprise a notification type valueand a notification location value.

The notification type value may comprise at least one value selectedfrom the values consisting of: an e-mail definition; a messagedefinition; a document edit definition; and an application messagedefinition.

The notification location value may comprise at least one value selectedfrom the values consisting of: an e-mail address; a messaging address; adocument edit location; a document object identifier; a document sectionidentifier; an application username; an identifier associated with theuser; and an identifier associated with a predetermined entity.

The providing the notification response to the user may comprise sendingan alert that is sent to a mobile device of the user.

The notification response value may comprise a notification type valueand a notification location value, and wherein the notification typevalue comprises the alert, and wherein the notification location valuecomprises a communication channel to the mobile device of the user.

The alert may activate a graphical user interface of the mobile deviceto cause the alert to display on the mobile device and to enableconnection with the graphical user interface when the mobile isactivated.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value; a datamanagement circuit structured to interpret the data value; a usernotification circuit structured to determine whether an event triggerhas occurred in response to the notification trigger value and the datavalue; and a user interaction circuit structured to provide anotification to a user in response to the event trigger and thenotification response value.

The notification trigger value may comprise a keyword, and wherein theuser notification circuit is further structured to determine whether theevent trigger has occurred by determining whether another user hasperformed one of: entering, editing, or deleting the keyword in thedocument.

The notification trigger value may comprise an update value for at leastone parameter in the data value, and wherein the user notificationcircuit is further structured to determine whether the event trigger hasoccurred by determining whether the update value indicates the at leastone parameter has been updated.

The notification trigger value may comprise a status value for at leastone parameter in the data value, and wherein the user notificationcircuit is further structured to determine whether the event trigger hasoccurred by performing at least one operation selected from theoperations consisting of: determining the status value has changed;determining the status value has updated; determining the status valueis equal to a predetermined value; determining the status value hasexceeded a predetermined threshold; and determining the status value hasfallen below a predetermined threshold.

The notification trigger value may comprise at least one value selectedfrom the values consisting of: a predetermined time period; apredetermined external event occurrence; a predetermined specific useraccessing the document; a predetermined user role accessing thedocument; a predetermined document object edit value; and apredetermined document section edit value.

The notification trigger value may comprise a process state value.

The process state value may comprise at least one value selected fromthe values consisting of: a recruiting process state value; a projectmilestone value; a task occurrence value; a task progression value; anorder occurrence value; an order validity value; a design change requestvalue; and a problem report value.

The notification trigger value may comprise a status value for at leastone parameter in a location selected from: the data value, the document,and a source data.

The user notification circuit may be further structured to determinewhether the event trigger has occurred by performing at least oneoperation selected from the operations consisting of: determining thestatus value has changed; determining the status value has updated;determining the status value is equal to a predetermined value;determining the status value has exceeded a predetermined threshold; anddetermining the status value has fallen below a predetermined threshold.

The notification response value may comprise a notification type valueand a notification location value.

The notification type value may comprise at least one value selectedfrom the values consisting of: an e-mail definition; a messagedefinition; a document edit definition; and an application messagedefinition.

The notification location value may comprise at least one value selectedfrom the values consisting of: an e-mail address; a messaging address; adocument edit location; a document object identifier; a document sectionidentifier; an application username; an identifier associated with theuser; and an identifier associated with a predetermined entity.

The user interaction circuit may be structured to provide thenotification as an alert that is sent to a mobile device of the user.

The notification response value may comprise a notification type valueand a notification location value, and wherein the notification typevalue comprises the alert, and wherein the notification location valuecomprises a communication channel to the mobile device of the user.

The alert may activate a graphical user interface of the mobile deviceto cause the alert to display on the mobile device and to enableconnection with the graphical user interface when the mobile isactivated.

An embodiment of the present disclosure includes a method, comprising:interpreting a user notification profile value comprising a notificationtrigger value and a notification response value, wherein thenotification response value comprises an action link definition and anotification location value; interpreting a data value comprising atleast a portion of a document; determining whether an event trigger hasoccurred in response to the notification trigger value and the datavalue; and providing a notification to a user in response to the eventtrigger and the notification response value.

An embodiment of the present disclosure may further comprise, inresponse to a user selection of the action link, performing at least oneoperation selected from the operations consisting of: scheduling acalendar entry for the user; requesting a calendar entry for an entityother than the user; calling an entity determined in response to theaction link definition; ordering one of a product or a service inresponse to the action link definition; and assigning a task to anentity in response to the action link definition.

An embodiment of the present disclosure may further compriseinterpreting a user action request value, and in response to the useraction request value, updating the action link definition.

An embodiment of the present disclosure may further compriseinterpreting a user location value, and determining the action linkdefinition in response to the user location value.

An embodiment of the present disclosure may further comprise, inresponse to a user selection of the action link, performing at least oneoperation selected from the operations consisting of: scheduling acalendar entry for the user; requesting a calendar entry for an entityother than the user; calling an entity determined in response to theaction link definition; ordering one of a product or a service inresponse to the action link definition; and assigning a task to anentity in response to the action link definition.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value, whereinthe notification response value comprises an action link definition anda notification location value; a data management circuit structured tointerpret the data value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the data value; and a user interactioncircuit structured to provide a notification to a user in response tothe event trigger and the notification response value.

The user interaction circuit may be further structured, in response to auser selection of the action link, to perform at least one operationselected from the operations consisting of: scheduling a calendar entryfor the user; requesting a calendar entry for an entity other than theuser; calling an entity determined in response to the action linkdefinition; ordering one of a product or a service in response to theaction link definition; and assigning a task to an entity in response tothe action link definition.

An embodiment of the present disclosure may further compriseinterpreting a user action request value, and in response to the useraction request value, updating the action link definition.

An embodiment of the present disclosure may further compriseinterpreting a user location value, and determining the action linkdefinition in response to the user location value.

An embodiment of the present disclosure may further comprise in responseto a user selection of the action link, performing at least oneoperation selected from the operations consisting of: scheduling acalendar entry for the user; requesting a calendar entry for an entityother than the user; calling an entity determined in response to theaction link definition; ordering one of a product or a service inresponse to the action link definition; and assigning a task to anentity in response to the action link definition.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a user display circuit structured to determine adocument view in response to the data value, and to provide the documentview to a user; a unified document surface application circuitstructured to interpret a first user input comprising an edit to thedata value; and a document synchronization circuit structured tocommunicate the first user input to the first computing device.

The client resource value may comprise at least one value selected fromthe values consisting of: a user device screen size, a user device inputtype, a user device resource parameter, and a user device communicationvalue.

The client resource circuit may be further structured to configuredocument calculation operations to limit calculations performed on thesecond computing device.

The client resource circuit may be further structured to configuredocument calculation operations to limit calculations performed on thesecond computing device in response to a target response time of thesecond client computing device.

The client resource circuit may be further structured to adjust at leastone document object in response to the user device screen size.

The user display circuit may be further structured to determine theclient resource value, and wherein the user display circuit adjusts thedocument view in response to the client resource value.

The user display circuit may be further structured to adjust a menudisplay in response to the client resource value.

The document synchronization circuit may be further structured to allowoptimistic updates of the data value in response to at least one of: aslow communication between the document server and the second computingdevice or a loss of communication between the document server and thesecond computing device.

The client resource circuit may be further structured to perform one ofincreasing or decreasing an amount of flat data in the data value inresponse to the client resource value.

An embodiment of the present disclosure includes a method, comprising:determining a client resource value; communicating a data value from adocument server to a second computing device, where the data valuecomprises at least a portion of a document in response to the clientresource value; determining a document view in response to the datavalue; providing the document view to a user; interpreting a first userinput comprising an edit to the data value; and communicating the firstuser input to the document server from the second computing device.

The client resource value may comprise at least one value selected fromthe values consisting of: a user device screen size, a user device inputtype, a user device resource parameter, and a user device communicationvalue.

An embodiment of the present disclosure may further comprise configuringdocument calculation operations to limit calculations performed on thesecond computing device.

An embodiment of the present disclosure may further comprise configuringdocument calculation operations to limit calculations performed on thesecond computing device in response to a target response time of thesecond client computing device.

An embodiment of the present disclosure may further comprise adjustingat least one document object in response to the user device screen size.

An embodiment of the present disclosure may further comprise determiningthe client resource value, and further adjusting the document view inresponse to the client resource value.

An embodiment of the present disclosure may further comprise adjusting amenu display in response to the client resource value.

An embodiment of the present disclosure may further comprise allowingoptimistic updates of the data value in response to at least one of: aslow communication between the document server and the second computingdevice or a loss of communication between the document server and thesecond computing device.

An embodiment of the present disclosure may further comprise performingone of increasing or decreasing an amount of flat data in the data valuein response to the client resource value.

An embodiment of the present disclosure includes a method, comprising:interpreting a user external data reference value and a display locationselection value; accessing an external data source in response to theuser external data reference value; performing a display enrichmentoperation in response to the external data source and the displaylocation selection value; and providing an enriched display value inresponse to the display location selection value and the displayenrichment operation.

The user external data reference value may comprise at least one valueselected from the values consisting of: a uniform resource locator; awebsite name; a database identifier; a document identifier; a datareference value; a data link value; a path identifier; a filenameidentifier; a file transfer protocol identifier; and a user referenceselection.

The display location selection value may comprise at least one locationvalue selected from the location values comprising: a table cell value;a table column value; an object identifier value; and a documentlocation value.

The performing the display enrichment operation may comprise performinga data transform operation on at least one data value from the externaldata source.

The performing the display enrichment operation may further comprise:determining a plurality of candidate data transform operations;providing the plurality of candidate data transform operations to auser; interpreting a user selection of the plurality of candidate datatransform operations; and wherein the performing the display enrichmentoperation is in response to the user selection of the plurality ofcandidate data transform operations.

An embodiment of the present disclosure may further comprise providing apreview of at least one of the plurality of candidate data transformoperations to the user.

The determining a plurality of candidate data transform operations maybe in response to at least one of: the user external data referencevalue; the display location selection value; a previous user selectionof the plurality of candidate data transform operations; a predeterminedlist of candidate data transform operations; a data type of accesseddata from the external data source; an external data transform operationprovided by the external data source; and a context value.

An embodiment of the present disclosure may further comprise accessingthe external data source, and storing data from the external data sourcein a datastore, and wherein the performing a display enrichmentoperation in response to the external data source comprises accessingthe datastore.

An embodiment of the present disclosure may further comprise updatingthe enriched display value in response to a change in the external datasource.

An embodiment of the present disclosure may further comprise determiningthat an external data source is not presently available, and delayingthe performing the display enrichment operation until the external datasource is available.

An embodiment of the present disclosure may further compriseinterpreting a user data edit operation comprising an edit to theenriched display value, and updating the external data source inresponse to the user data edit operation.

An embodiment of the present disclosure may further comprise storing anexternal data source configuration value, the external data sourceconfiguration value comprising access information corresponding to theexternal data source, and wherein the accessing the external data sourcecomprises accessing the external data source configuration value.

The external data source configuration value may comprise a systemtable.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a dataenrichment circuit structured to performing a display enrichmentoperation in response to the external data source and the displaylocation selection value; and a user display circuit structured toprovide an enriched display value in response to the display locationselection value and the display enrichment operation.

The user external data reference value may comprise at least one valueselected from the values consisting of: a uniform resource locator; awebsite name; a database identifier; a document identifier; a datareference value; a data link value; and a user reference selection.

The display location selection value may comprise at least one locationvalue selected from the location values comprising: a table cell value;a table column value; an object identifier value; and a documentlocation value, and including wherein data enrichment circuit is furtherstructured to perform the display enrichment operation by performing adata transform operation on at least one data value from the externaldata source, and/or the data enrichment circuit is further structured toperform the display enrichment operation by: determining a plurality ofcandidate data transform operations; providing the plurality ofcandidate data transform operations to a user; interpreting a userselection of the plurality of candidate data transform operations; andfurther performing the display enrichment operation in response to theuser selection of the plurality of candidate data transform operations.

The user display circuit may be further structured to provide preview ofat least one of the plurality of candidate data transform operations tothe user.

The data enrichment circuit may be further structured to determine theplurality of candidate data transform operations in response to at leastone of: the user external data reference value; the display locationselection value; a previous user selection of the plurality of candidatedata transform operations; a predetermined list of candidate datatransform operations; a data type of accessed data from the externaldata source; an external data transform operation provided by theexternal data source; and a context value.

The external data access circuit may be further structured to access theexternal data source, to store data from the external data source in adatastore, and wherein the data enrichment circuit is further structuredto perform the display enrichment operation in response to the externaldata source by accessing the datastore.

The user display circuit may be further structured to update theenriched display value in response to a change in the external datasource.

The external data access circuit may be further structured to determinethat an external data source is not presently available, and wherein thedata enrichment circuit is further structured to delay the performingthe display enrichment operation until the external data source isavailable.

The user interaction circuit may be further structured to interpret auser data edit operation comprising an edit to the enriched displayvalue, and wherein the external data access circuit is furtherstructured to update the external data source in response to the userdata edit operation.

The external data access circuit may be further structured to store anexternal data source configuration value, the external data sourceconfiguration value comprising access information corresponding to theexternal data source, and to access the external data source further byaccessing the external data source configuration value.

The external data source configuration value may comprise a systemtable.

An embodiment of the present disclosure includes a method, comprising:interpreting a table grouping input value associated with a table,wherein the table comprises a plurality of categories and a plurality ofassociated data sets corresponding to the plurality of categories;determining an aggregation value in response to the table grouping inputvalue, wherein the aggregation value corresponds to at least one of theplurality of categories; and in response to the aggregation value,providing an aggregated table view.

The interpreting the table grouping input value may comprise: providingan aggregation user interface element to a user; interpreting a userselection value in response to the aggregation user interface element;and determining an aggregation profile in response to the user selectionvalue; and wherein the determining the aggregation value is further inresponse to the aggregation profile.

The aggregation profile may comprise at least one of the categories foraggregation.

The aggregation profile may comprise an aggregation scheme for theplurality of associated data sets.

The aggregation scheme may comprise at least one scheme selected fromthe schemes consisting of: qualitative aggregation of associated datasets according to at least one of the categories; quantitativeaggregation of associated data sets according to at least one of thecategories; and binned aggregation of associated data sets according toat least one of the categories.

The aggregation scheme may comprise a nested aggregation of associateddata sets according to at least two of the categories.

The aggregation scheme may comprise at least one scheme selected fromthe schemes consisting of: an associated data set count according to atleast one of the categories; a sum of associated data sets according toat least one of the categories; an average of associated data setsaccording to at least one of the categories; an applied function ofassociated data sets according to at least one of the categories; anapplied formatting of associated data sets according to at least one ofthe categories; and combinations of any two or more of the foregoing.

An embodiment of the present disclosure may further comprise storing atleast one of the aggregation scheme or the aggregation profile on anoperation log.

An embodiment of the present disclosure may further comprise determiningan aggregation formula to provide the aggregation value, and storing theaggregation formula on an operation log.

An embodiment of the present disclosure may further comprise storing theaggregation value on the operation log.

The aggregation user interface element may comprise at least one elementselected from the elements consisting of: a dedicated aggregation inputelement; a table supercell; a table category heading; a toolbarinterface element; a menu interface element; and a context triggeredelement.

The table input grouping value may comprise at least one value selectedfrom the values consisting of: a user selection of a dedicatedaggregation input element; a user drag operation to a table supercell; auser drag operation of a table supercell; a user drag operationincluding an element of a first table and an element of a second table;a user menu interface element selection; and a user selection of acontext triggered element.

The interpreting a table grouping input value may comprise interpretinga user drag operation including at least two data values, and whereinthe determining the aggregation value comprises preserving originalvalues for the at least two data values.

An embodiment of the present disclosure may further compriseinterpreting a user data edit value corresponding to one of theplurality of associated data sets viewable in the aggregated table view,and updating at least one data value on the table in response to theuser data edit value.

An embodiment of the present disclosure may further comprise determiningchange operations of the user in response to the user data edit value,and storing the determined change operations on an operation log.

An embodiment of the present disclosure may further comprise updatingthe operation log, wherein the updating comprises determining a reducedset of operations from the change operations, and replacing the changeoperations with the reduced set of operations.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a table grouping inputvalue associated with at least one table, the table comprising aplurality of categories and a plurality of associated data setscorresponding to the plurality of categories; a table aggregationcircuit structured to determine an aggregation value in response to thetable grouping input value, wherein the aggregation value corresponds toat least one of the plurality of categories; and wherein the userinteraction circuit is further structured to provide an aggregated tableview in response to the aggregation value.

The user interaction circuit may be further structured to interpret thetable grouping input value by performing at least one operation selectedfrom the operations consisting of: providing an aggregation userinterface element to a user; interpreting a user selection value inresponse to the aggregation user interface element; and determining anaggregation profile in response to the user selection value; and whereinthe table aggregation circuit is further structured to determine theaggregation value further in response to the aggregation profile.

The aggregation profile may comprise at least one of the categories foraggregation.

The aggregation profile may comprise an aggregation scheme for theplurality of associated data sets.

The aggregation scheme may comprise at least one scheme selected fromthe schemes consisting of: qualitative aggregation of associated datasets according to at least one of the categories; quantitativeaggregation of associated data sets according to at least one of thecategories; and binned aggregation of associated data sets according toat least one of the categories.

The aggregation scheme may comprise a nested aggregation of associateddata sets according to at least two of the categories.

The aggregation scheme may comprise at least one scheme selected fromthe schemes consisting of: an associated data set count according to atleast one of the categories; a sum of associated data sets according toat least one of the categories; an average of associated data setsaccording to at least one of the categories; an applied function ofassociated data sets according to at least one of the categories; anapplied formatting of associated data sets according to at least one ofthe categories; and combinations of any two or more of the foregoing.

The aggregation user interface element may comprise at least one elementselected from the elements consisting of: a dedicated aggregation inputelement; a table supercell; a table category heading; a toolbarinterface element; a menu interface element; and a context triggeredelement.

The table input grouping value may comprise at least one value selectedfrom the values consisting of: a user selection of a dedicatedaggregation input element; a user drag operation to a table supercell; auser drag operation of a table supercell; a user drag operationincluding an element of a first table and an element of a second table;a user menu interface element selection; and a user selection of acontext triggered element.

The user interaction circuit may be further structured to interpret atable grouping input value by interpreting a user drag operationincluding at least two data values, and wherein the table aggregationcircuit is further structured to determine the aggregation value bypreserving original values for the at least two data values.

The user interaction circuit may be further structured to interpret auser data edit value corresponding to one of the plurality of associateddata sets viewable in the aggregated table view, and to update at leastone data value on the table in response to the user data edit value.

An embodiment of the present disclosure includes a system, comprising: acomputing device, comprising: a unified document application circuitstructured to interpret a user table input value, the user table inputvalue comprising a plurality of table data values; a table managementcircuit structured to determine a table organization value in responseto the table data values, wherein the table organization value comprisesat least one value selected from the values consisting of: a columnnaming scheme; a sorting scheme; a filtering scheme; an aggregationscheme; and a formatting scheme; and a user display circuit structuredto provide a table view in response to the table organization value.

The unified document application circuit may be further structured tointerpret a user formula value, wherein the user formula value does notinclude a row reference, wherein the table management circuit is furtherstructured to update the table organization value in response to theuser formula value, and wherein the user display circuit is furtherstructured to update the table view in response to the tableorganization value.

The table management circuit may be further structured to update thetable organization value by applying the user formula value to an entirecolumn of the table.

The table management circuit may be further structured to select theentire column of the table in response to an operation selected from: adrag-and-drop operation of the user formula value to the column; a userformula entry tool selection, wherein the formula entry tool comprises agraphical user interface associated with the column; and a formula valuereferencing the column.

The table management circuit may be further structured to select theentire column of the table in response to a formula value referencingthe column, wherein the table is positioned on a canvas, and wherein theformula value is positioned on the canvas separate from the table.

The table management circuit may be further structured to disambiguatebetween two columns having an identical display name.

The table organization value may comprise the sorting scheme, whereinthe unified document application circuit is further structured tointerpret a further user table input value, and wherein the tablemanagement circuit is further structured to update the sorting scheme inresponse to the further user table input value.

The table management circuit may be further structured to update thesorting scheme by performing an operation selected from the operationsconsisting of: continuously updating the sorting scheme as the userprovides the further user table input value; updating the sorting schemein response to the user selecting a different row of the table; andupdating the sorting scheme in response to the user completing a datavalue entry on the table.

The table organization value may comprise the filtering scheme, whereinthe unified document application circuit is further structured tointerpret a further user table input value, and wherein the tablemanagement circuit is further structured to update the filtering schemein response to the further user table input value.

The table management circuit may be further structured to update thefiltering scheme by performing an operation selected from the operationsconsisting of: continuously updating the filtering scheme as the userprovides the further user table input value; updating the filteringscheme in response to the user selecting a different row of the table;and updating the filtering scheme in response to the user completing adata value entry on the table.

The table organization value may comprise the aggregation scheme,wherein the unified document application circuit is further structuredto interpret a further user table input value comprising a draggingoperation to add columns, and wherein the table management circuit isfurther structured to update the aggregation scheme in response to thedragging operation.

The table management circuit may be further structured to name the addedcolumns.

The table management circuit may be further structured to provide aprimary key associated to at least one of the added columns.

The column name and the primary key for the at least one added columnmay be stored in an operation log.

The column name may comprise a mask for user display.

The computing device may utilize the primary key for operatingcalculations on the added column.

An embodiment of the present disclosure includes a method, comprising:interpreting a user table input value, the user table input valuecomprising a plurality of table data values; determining a tableorganization value in response to the table data values, wherein thetable organization value comprises at least one value selected from thevalues consisting of: a column naming scheme; a sorting scheme; afiltering scheme; an aggregation scheme; and a formatting scheme; andproviding a table view in response to the table organization value. Anembodiment of the present disclosure may further comprise interpreting auser formula value, where the user formula value does not include a rowreference, updating the table organization value in response to the userformula value, and updating the table view in response to the tableorganization value.

An embodiment of the present disclosure may further comprise updatingthe table organization value by applying the user formula value to anentire column of the table.

An embodiment of the present disclosure may further comprise selectingthe entire column of the table in response to an operation selectedfrom: a drag-and-drop operation of the user formula value to the column;a user formula entry tool selection, wherein the formula entry toolcomprises a graphical user interface associated with the column; and aformula value referencing the column.

An embodiment of the present disclosure may further comprise selectingthe entire column of the table in response to a formula valuereferencing the column, wherein the table is positioned on a canvas, andwherein the formula value is positioned on the canvas separate from thetable.

An embodiment of the present disclosure may further comprisedisambiguating between two columns having an identical display name.

The table organization value may comprise the sorting scheme, the methodfurther comprising interpreting a further user table input value, andupdating the sorting scheme in response to the further user table inputvalue.

An embodiment of the present disclosure may further comprise updatingthe sorting scheme by performing an operation selected from theoperations consisting of: continuously updating the sorting scheme asthe user provides the further user table input value; updating thesorting scheme in response to the user selecting a different row of thetable; and updating the sorting scheme in response to the usercompleting a data value entry on the table.

The table organization value may comprise the filtering scheme, themethod further comprising interpreting a further user table input value,and updating the filtering scheme in response to the further user tableinput value.

An embodiment of the present disclosure may further comprise updatingthe filtering scheme by performing an operation selected from theoperations consisting of: continuously updating the filtering scheme asthe user provides the further user table input value; updating thefiltering scheme in response to the user selecting a different row ofthe table; and updating the filtering scheme in response to the usercompleting a data value entry on the table.

The table organization value may comprise the aggregation scheme, themethod further comprising interpreting a further user table input valuecomprising a dragging operation to add columns, and updating theaggregation scheme in response to the dragging operation.

An embodiment of the present disclosure may further comprise naming theadded columns.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a user interaction circuit structured to interpret a user referenceentry; a reference management circuit structured to determine areference return value in response to the user reference entry; and auser display circuit structured to determine a document view in responseto the reference return value, and to provide the document view to auser.

The user reference entry may comprise at least one value selected fromthe values consisting of: a formula entry value, a reference requestvalue, and a keyword request value.

The reference return value may comprise at least one value selected fromthe values consisting of: a table column name value; an object primarykey value; an object name value; a mask value comprising an object namevalue for display and a primary key value; a scope selection value; anda list of any one or more of the foregoing.

The user reference entry may comprise a reference to a source datacomprising an external source, and wherein the reference managementcircuit is further structured to update a reference parameter inresponse to a change in the external source.

The reference management circuit may be further structured to determinea reference ambiguity condition, and wherein the reference return valuecomprises a disambiguation value.

The reference return value may further comprise a plurality ofdisambiguation values, and wherein the user display circuit is furtherstructured to determine the document view further in response to theplurality of disambiguation values.

The reference return value may comprise at least one value selected fromthe values consisting of: an object name, an object method, and adereferencing option value.

An embodiment of the present disclosure includes a method, comprising:interpreting a user reference entry; determining a reference returnvalue in response to the user reference entry;

determining a document view in response to the reference return value;and providing the document view to a user.

The user reference entry may comprise at least one value selected fromthe values consisting of: a formula entry value, a reference requestvalue, and a keyword request value.

The reference return value may comprise at least one value selected fromthe values consisting of: a table column name value; an object primarykey value; an object name value; a mask value comprising an object namevalue for display and a primary key value; a scope selection value; anda list of any one or more of the foregoing.

The user reference entry may comprise a reference to a source datacomprising an external source, and the method further comprisingupdating a reference parameter in response to a change in the externalsource.

An embodiment of the present disclosure may further comprise determininga reference ambiguity condition, and wherein the reference return valuecomprises a disambiguation value.

The reference return value may further comprise a plurality ofdisambiguation values, the method further comprising determining thedocument view further in response to the plurality of disambiguationvalues.

The reference return value may comprise at least one value selected fromthe values consisting of: an object name, an object method, and adereferencing option value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and wherein the data value further comprises a table referencingvalue directed to the second embedded table object, wherein the tablereferencing value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the table referencingvalue comprises the first parent object name.

The second embedded table object may comprise a table linked to thefirst table object.

The formula further may comprise a corresponding parent object name thatis the second parent object name.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object;

wherein the first table object comprises at least one column and aplurality of row values corresponding to each of the at least onecolumn, and wherein at least one of the plurality of row valuescomprises a second table object embedded in the first table object.

The at least one of the plurality of row values each may include one ofthe second table objects embedded in the first table object.

The data value may further comprise a formula, wherein the formulacomprises a reference value to a column of each of the second tableobjects.

An embodiment of the present disclosure may further comprise a unifieddocument application circuit structured to perform a column-wiseoperation on each of the second table objects in response to theformula, including wherein the at least one the plurality of row valueseach comprise an aggregation value.

An embodiment of the present disclosure includes a method, comprising:providing a first table object comprising a table specific namecorresponding to the first table object and a first parent object namecorresponding to the first table object; providing a second embeddedtable object comprising a table specific name corresponding to thesecond table object and a second parent object name corresponding to thesecond table object; wherein the first parent object name is distinctfrom the second parent object name; and processing a formula including atable referencing value directed to the second embedded table object,wherein the table referencing value comprises a corresponding parentobject name that is distinct from the first parent object name, andrelating a parent hierarchy for the table referencing value to the firstparent object name.

The second embedded table object may comprise a table linked to thefirst table object.

The corresponding parent object name may be the second parent objectname.

An embodiment of the present disclosure includes a method, comprising:providing a first table object, the first table object comprising atleast one column and a plurality of row values corresponding to the atleast one column; and providing at least one of the plurality of rowvalues as a second table object embedded in the first table object.

An embodiment of the present disclosure may further comprise providingeach of the plurality of row values as a second table object embedded inthe first table object.

An embodiment of the present disclosure may further comprise processinga formula, wherein the formula comprises a reference value to a columnof each of the second table objects.

An embodiment of the present disclosure may further comprise performinga column-wise operation on each of the second table objects in responseto the formula, and wherein each of the at least one of the plurality ofrow values may comprise an aggregation value.

An embodiment of the present disclosure includes a system, comprising: acommunication layer structured to provide access between a computingdevice and an external network; the computing device, comprising: anaccess interface circuit structured to expose a plurality of applicationprogramming interface (API) objects to the communication layer; whereinthe plurality of API objects comprises a first API object configured to:interpret a table input value, the table input value comprising aplurality of table data values; determine a table organization value inresponse to the table data values, wherein the table organization valuecomprises at least one value selected from the values consisting of: acolumn naming scheme; a sorting scheme; a filtering scheme; anaggregation scheme; and a formatting scheme; determine a table view inresponse to the table organization value; and wherein the accessinterface circuit is further structured to receive the table input valueover the communication layer, and to provide the table view to thecommunication layer.

The first API object may be further configured to: interpret a formulavalue, wherein the formula value does not include a row reference, toupdate the table organization value in response to the formula value,and to update the table view in response to the table organizationvalue.

The first API object may be further configured to update the tableorganization value by applying the formula value to an entire column ofthe table data values.

The first API object may be further configured to: interpret a tablegrouping input value associated with the table data values, wherein thetable data values comprise a plurality of categories and a plurality ofassociated data sets corresponding to the plurality of categories;determine an aggregation value in response to the table grouping inputvalue, wherein the aggregation value corresponds to at least one of theplurality of categories; to update the table view in response to theaggregation value; and wherein the access interface circuit is furtherstructured to receive the table grouping input value over thecommunication layer.

The first API object may be further configured to: determine anaggregation scheme, wherein the aggregation scheme comprises at leastone scheme selected from the schemes consisting of: qualitativeaggregation of associated data sets according to at least one of thecategories; quantitative aggregation of associated data sets accordingto at least one of the categories; and binned aggregation of associateddata sets according to at least one of the categories; and determine theaggregation value in response to the aggregation scheme.

The table input grouping value may comprise at least one value selectedfrom the values consisting of: a selection of a dedicated aggregationinput element; a drag operation to a table supercell; a drag operationof a table supercell; a drag operation including an element of a firsttable and an element of a second table; a menu interface elementselection; and a selection of a context triggered element.

The plurality of API objects may further comprise a second API objectconfigured to: interpret a data selection comprising at least one datavalue, wherein the data selection comprises at least one of a referenceor a link to an external source data; create a data view in response tothe data selection; and wherein the access interface circuit is furtherstructured to receive the data selection over the communication layer,and to provide the data view to the communication layer.

The second API object may be further configured to: interpret a dataentry; to provide an external source data option in response to the dataentry; update at least a portion of the data view in response to theexternal source data option; and wherein the access interface circuit isfurther structured to receive the data entry over the communicationlayer.

The second API object may be further configured to: interpret a dataentry comprising an edit of the at least one data value; and to updatethe external source data in response to the data entry.

The second API object may be further configured to query the externalsource data and to provide an update of the data view in response to thequery.

The second API object may be further configured to perform the queryoperation in response to at least one of: an update time expiration; anotification from an external device hosting the external source; achange in a second data value having a dependency on the external sourcedata; a change in an object having a dependency on the external sourcedata; a creation of a second data value having a dependency on theexternal source data; and a creation of an object having a dependency onthe external source data; and a request to provide a continuous updateof the at least one data value.

The plurality of API objects may further comprise a third API objectconfigured to: interpret a reference selection; determine a referencereturn value in response to the reference selection; determine areference return display in response to the reference return value; and

wherein the access interface circuit is further structured to receivethe reference selection over the communication layer, and to provide thereference return display to the communication layer.

The third API object may be further configured to: determine thereference return value in response to at least one of: responsiveinformation within a document, or responsive information within anexternal source data.

The source data may comprise a source data selected from the sourcesconsisting of: a website, a database external to the document, a cloudstorage location, a second identified document, and a network location.

An embodiment of the present disclosure includes a method, comprising:interpreting a user entry value comprising at least one character; inresponse to the user entry value, determining at least one candidateentry; and providing an autocompleted entry in response to a userselection of the at least one candidate entry.

An embodiment of the present disclosure may further comprise determininga list of candidate entries, and providing a plurality of candidateentries to the user in response to the list of candidate entries.

An embodiment of the present disclosure may further comprise providing apreview of at least one of the plurality of candidate entries to theuser.

The preview may comprise at least one preview selected from the previewsconsisting of: contextual information related to the candidate entry;offset column data for a table related to the candidate entry; a relatedtable column heading to the candidate entry; a related table name forthe candidate entry; a related object name to the candidate entry; arelated object heading to the candidate entry; and a related objectvalue to the candidate entry.

The preview may comprise at least one preview selected from the previewsconsisting of: a result set for at least one of the candidate entries ifthe at least one candidate entry is selected; a result of a formularesulting from the candidate entry if selected; at least one rowresulting from a sorting operation if the candidate entry is selected;at least one row resulting from a filtering operation if the candidateentry is selected; and a depiction of a resulting object if thecandidate entry is selected.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a unified document application circuit structured tointerpret a user entry value comprising at least one character; a userdisplay circuit structured to determine at least one candidate entry inresponse to the user entry value; and wherein the unified documentsurface application circuit is further structured to provide anautocompleted entry in response to a user selection of the at least onecandidate entry.

The user display circuit may be further structured to determine a listof candidate entries, and to provide a plurality of candidate entries tothe user in response to the list of candidate entries.

The user display circuit may be further structured to provide a previewof at least one of the plurality of candidate entries to the user.

The preview may comprise at least one preview selected from the previewsconsisting of: contextual information related to the candidate entry;offset column data for a table related to the candidate entry; a relatedtable column heading to the candidate entry; a related table name forthe candidate entry; a related object name to the candidate entry; arelated object heading to the candidate entry; and a related objectvalue to the candidate entry.

The preview may comprise at least one preview selected from the previewsconsisting of: a result set for at least one of the candidate entries ifthe at least one candidate entry is selected; a result of a formularesulting from the candidate entry if selected; at least one rowresulting from a sorting operation if the candidate entry is selected;at least one row resulting from a filtering operation if the candidateentry is selected; and a depiction of a resulting object if thecandidate entry is selected.

The preview may comprise at least one preview selected from the previewsconsisting of: help text; an impact of the user entry value; an impactof a candidate entry; a result of the user entry value; a result of acandidate entry; write-through results of the user entry value; andwrite-through results of a candidate entry.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document; and a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device.

A first version of the document may be positioned on the documentserver, and a second version of the document is positioned on the firstclient computing device, and wherein the first client computing devicecomprises an arbitration circuit structured to synchronize the firstversion of the document and the second version of the document, therebycreating an updated document.

An embodiment of the present disclosure may further comprise a secondclient computing device of the at least one client computing device,wherein a third version of the document is positioned on the secondclient computing device, and wherein the arbitration circuit is furtherstructured to synchronize the first version of the document, the secondversion of the document, and the third version of the document, therebycreating the updated document.

The document may further comprise at least one of a snapshot or adocument definition table, and wherein the at least one of the snapshotor the document definition table, combined with the at least one firstsequential operation, provide a definition of data values of thedocument.

An embodiment of the present disclosure includes a method, comprising:providing a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation, and constructingthe document in response to the operation log; determining a calculationdefinition in response to at least one formula of the document;providing an object definition corresponding to each of a plurality ofobjects in the document; synchronizing a first version of the documenton a first client computing device with a second version of the documenton a second computing device.

The synchronizing may comprise creating an updated document.

An embodiment of the present disclosure may further comprise a thirdversion of the document on a third second client computing device, andsynchronizing the first version of the document, the second version ofthe document, and the third version of the document.

The synchronizing may comprise creating an updated document.

An embodiment of the present disclosure may further comprise providingat least one of a snapshot or a document definition table, wherein theat least one of the snapshot or the document definition table, combinedwith the at least one first sequential operation, provide a definitionof data values of the document.

The document further comprises the snapshot, the method furthercomprising updating the snapshot, wherein the updating comprisingdefining at least one second sequential operation, wherein the at leastone second sequential operation, if executed, results in a consolidateddocument equivalent to the document before the updating the snapshot.

The updated snapshot may comprise at least one of: the second sequentialoperation comprising fewer processor operations than the firstsequential operation; the second sequential operation comprising fewerlogical operations than the first sequential operation; the secondsequential operation comprising a simplified description of operationsthan the first sequential operation; and the second sequential operationcomprising lumped operations relative to the first sequential operation.

An embodiment of the present disclosure may further comprise performingone of clearing the operation log and reducing the operation log inresponse to the updated snapshot.

The document may further comprise the document definition table, and themethod comprising updating the document definition table, wherein theupdating comprises defining an updated document definition table havingat least a portion of the first sequential operation applied thereto.

An embodiment of the present disclosure may further comprise performingat least one of clearing the operation log and reducing the operationlog in response to the updated document definition table.

An embodiment of the present disclosure may further compriseinterpreting at least one environment variable, and least selectivelyproviding a document view including the at least one environmentvariable.

The at least one environment variable may comprise at least one valueselected from the values consisting of: a user location value; an offsetuser document access indicator; a user focus value; and a system timevalue.

An embodiment of the present disclosure may further comprise exposingthe at least one environment variable to a formula editor.

An embodiment of the present disclosure may further compriseinterpreting an external data source request, and providing an access toan external data source in response to the external data source request.

An embodiment of the present disclosure may further comprise storing anauthorization token corresponding to the external data source in thedocument, wherein the authorization token comprises at least one accessvalue selected from the access values comprising: an access type; anaccess scope; an access duration; and an access reauthorization timevalue.

An embodiment of the present disclosure may further comprise providingan access to a second user in response to the authorization token andthe access scope.

An embodiment of the present disclosure may further compriseinterpreting a user comment value, and providing a document viewcomprising the user comment value.

An embodiment of the present disclosure may further compriseinterpreting a user review value, and providing a table view of at leastone user comment value in response to the user review value.

The document may further comprise the snapshot, and wherein the documentserver further comprises a document consolidation circuit structured toupdate the snapshot, the updated snapshot comprising at least onesequential operation defining at least one second sequential operation,wherein the at least one second sequential operation, if executed,results in a consolidated document equivalent to the document before theupdating the snapshot.

The updated snapshot may comprise at least one of: the second sequentialoperation comprising fewer processor operations than the firstsequential operation; the second sequential operation comprising fewerlogical operations than the first sequential operation; the secondsequential operation comprising a simplified description of operationsthan the first sequential operation; and the second sequential operationcomprising lumped operations relative to the first sequential operation.

The document consolidation circuit may perform at least one of clearingthe operation log and reducing the operation log in response to theupdated snapshot.

The document may further comprise the document definition table, andwherein the document server further comprises a document consolidationcircuit structured to update the document definition table, the updateddocument definition table comprising the document definition tablehaving at least a portion of the first sequential operation appliedthereto.

The document consolidation circuit may perform at least one of clearingthe operation log and reducing the operation log in response to theupdated document definition table.

The document object model may comprise a hierarchical object structure,and wherein objects of the document are associated consistent with thedocument object model.

The hierarchical object structure may comprise, in descending order, adocument object, a canvas object, a section object, and a table object.

The hierarchical object structure may further comprise at least oneobject selected from the objects consisting of: a range object, a textobject, a line object, a span object, and a tag object.

The hierarchical object structure may further comprise a scopedefinition corresponding to each of the objects of the document, andwherein the scope definition comprises at least one scope valueconsisting of the scope values consisting of: a data scope value; areferencing scope value; a formula scope value; a scope depiction value;and a scope configurability value.

The formula engine may further comprise an environment definitioncircuit structured to interpret at least one environment variable, andwherein the first client computing device further comprises a unifieddocument surface application circuit structured to at least selectivelyprovide a document view including the at least one environment variable.

The at least one environment variable may comprise at least one valueselected from the values consisting of: a user location value; an offsetuser document access indicator; a user focus value; and a system timevalue.

The unified document surface application circuit may further comprise aformula assistant circuit structured to expose the at least oneenvironment variable to a formula editor.

The unified document surface application circuit may further comprise anauthorization circuit structured to interpret an external data sourcerequest, and to provide an access to an external data source in responseto the external data source request.

The authorization circuit may be further structured to store anauthorization token corresponding to the external data source in thedocument, wherein the authorization token comprises at least one accessvalue selected from the access values comprising: an access type; anaccess scope; an access duration; and an access reauthorization timevalue.

The authorization circuit may be further structured to provide an accessto a second user in response to the authorization token and the accessscope.

The unified document surface application circuit may be furtherstructured to interpret a user comment value, and to provide a documentview comprising the user comment value.

The unified document surface application circuit may be furtherstructured to interpret a user review value, and to provide a table viewof at least one user comment value in response to the user review value.

The document object model may further comprise a comment object type,and wherein the unified document surface application circuit is furtherstructured to associate the user comment value with the comment objecttype.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition; and wherein the document furthercomprises the executable object, and wherein the document is at leastpartially positioned on at least one of the document server and a firstclient computing device of the at least one client computing device.

The formula engine may be further structured to delete the executableobject in response to a close operation of the document on the clientcomputing device.

The formula engine may be further structured to generate the executableobject in response to an open operation of the document on the firstclient computing device.

The formula engine may be further structured to cache the executableobject in response to a close operation of the document on the firstclient computing device.

The formula engine may be further structured access the cachedexecutable object in response to an open operation of the document onthe first client computing device.

The formula engine may be further structured to verify the cachedexecutable object.

An embodiment of the present disclosure may further comprise a secondclient computing device, wherein the document is further positioned onat least one of the document server, the first client computing device,or a second client computing device of the at least one client computingdevice; and wherein the first client computing device includes a firstexecutable object stored thereupon, and wherein the second clientcomputing device includes a second executable object stored thereupon.

The executable object may comprise instructions which, upon execution,cause at least one of the document server and the first client computingdevice to perform operations in response to the calculation definition,the executable object further comprising at least one object selectedfrom the objects consisting of: an executable instruction object; ascript object; a javascript object; and a Perl object.

An embodiment of the present disclosure may further comprise at leastone workflow server in communication with the document server, andwherein the executable object further comprises instructions which, uponexecution, cause at least one of the document server and the firstclient computing device to perform operations to provide a result valuein response to the calculation definition.

The first client computing device may further comprise a unifieddocument surface application circuit structured to provide a documentview in response to the data values of the document and the result valueof the executable object.

The document may further comprise a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; and wherein theexecutable object is further structured to reference the document objectmodel.

The formula engine may be further structured to construct a dependencygraph of the document in response to the executable object, the documentmodel, and the data values of the document.

The first client computing device may further comprise a unifieddocument surface application circuit structured to interpret a user editvalue, and wherein the formula engine is further structured to updatethe executable object in response to the user edit value and thedependency graph.

The dependency graph may comprise a virtual conceptualization ofdependency relationships between: elements of the data values of thedocument; elements of the calculation definition; and combinationsthereof.

The formula engine may be further structured to construct aninvalidation graph in response to the dependency graph, the data valuesof the document, and the calculation definition.

The first client computing device may further comprise a unifieddocument surface application circuit structured to interpret a user editvalue, and wherein the formula engine is further structured to updatethe executable object in response to the user edit value and theinvalidation graph.

The formula engine may be further structured to pare a redundant aspectof the invalidation graph.

The first client computing device may further comprise a unifieddocument surface application circuit structured to interpret a user editvalue, and wherein the formula engine is further structured to updatethe executable object in response to the user edit value and the paredinvalidation graph.

The executable object may comprise a resource utilization value; whereinthe formula engine is further structured to analyze instructions of theexecutable object, and to update the executable object with a resourcereduced executable object; wherein the resource reduced executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations to provide the result value; and wherein the resource reducedexecutable object comprises a reduced execution resource valuecomprising a lower resource utilization value than the resourceutilization value.

The lower resource utilization value may comprise at least one of: areduced number of processor operations; a reduced communicationutilization; a reduced memory usage; and a reduced externalcommunication value.

The reduced executable object may further comprise at least one indexingoperation for at least one table object of the document.

The reduced executable object may further comprise at least one sortorder operation of a plurality of sort operations for at least one tableobject of the document.

The reduced executable object may further comprise at least one filterorder operation of a plurality of filter operations for at least onetable object of the document.

The reduced executable object may further comprise a re-ordering of atleast one operation of the executable object.

The formula engine may be further structured to analyze instructions ofthe executable object, and to update the executable object with aresource reduced executable object in response to a plurality of queriesin the document.

The formula engine may be further structured to analyze instructions ofthe executable object, and to update the executable object with aresource reduced executable object in response to the data values in thedocument corresponding to the plurality of queries.

The document server may be further structured to divide operations ofthe executable object between at least two of: the document server, thefirst client computing device, and at least one of the workflow servers.

The document server may be further structured to divide operations inresponse to at least one of: a first client computing device resourceparameter; contextual information; a current workload of the firstclient computing device; a current workload of the document server; anda current workload of the at least one workflow server.

The divided operations of the executable object may further comprise aquery execution operation.

The first client computing device may further comprise a unifieddocument surface application circuit structured to provide a documentview in response to the query execution operation.

The at least one data value of the document may include a run-timeobject, wherein the run-time object comprises a state value.

The state value may comprise a value selected from: a default value; acontextually determined value; and a user selected value.

An embodiment of the present disclosure may further comprise a unifieddocument surface application circuit structured to store the state valueseparate from the document in response to a close operation of thedocument.

An embodiment of the present disclosure may further comprise the unifieddocument surface application circuit further structured to update thestate value with the stored state value in response to an open operationof the document.

The stored state value may comprise a user specific value.

The run-time object may comprise a control.

The control may further comprise at least one control selected from thecontrols consisting of: a switch control; a multi-state switch control;a multi-picker control; an option list picker control; a dropdown pickercontrol; a numeric slider control; a date slider control; a time slidercontrol; a map picker control; a text box control; a validated text boxcontrol; a structured text box control; a card layout control; a drawingshape control; a media visual control; a table renderer control; a chartcontrol; and a shape set control.

An embodiment of the present disclosure includes a method, comprising:interpreting a formula of a document; determining a calculationdefinition in response to the formula of the document; and generating anexecutable object in response to the calculation definition.

An embodiment of the present disclosure may further comprise deletingthe executable object in response to a close operation of the documenton a first client computing device.

An embodiment of the present disclosure may further comprise generatingthe executable object further in response to an open operation of thedocument on the first client computing device.

An embodiment of the present disclosure may further comprise caching theexecutable object in response to a close operation of the document onthe first client computing device.

An embodiment of the present disclosure may further comprise accessingthe cached executable object in response to an open operation of thedocument on the first client computing device.

The cached executable object may selectively utilize the cachedexecutable object in response to the verifying.

The executable object may comprise a first executable object stored onthe first client computing device, the method further comprisinggenerating a second executable object in response to the calculationdefinition, wherein the second executable object is stored on secondclient computing device.

An embodiment of the present disclosure may further comprise operatingthe first executable object to determine a first result value, andproviding a first document view in response to the first executableobject; and operating the second executable object and providing asecond document view in response to the second executable object.

The operating the first executable object may comprise selectivelydividing operations of the first executable object between at least twoof: the first client computing device; a document server incommunication with the first client computing device and at least oneworkflow server; and the at least one workflow server.

An embodiment of the present disclosure may further compriseconstructing a dependency graph of the document in response to theexecutable object, a document model, and at least one data value of thedocument.

An embodiment of the present disclosure may further compriseinterpreting a user edit value, and updating the executable object inresponse to the user edit value and the dependency graph.

An embodiment of the present disclosure may further compriseconstructing an invalidation graph in response to the dependency graph,the at least one data value of the document, and the calculationdefinition.

An embodiment of the present disclosure may further compriseinterpreting a user edit value, and updating the executable object inresponse to the user edit value and the invalidation graph.

An embodiment of the present disclosure may further comprise paring aredundant aspect of the invalidation graph.

The updating the executable object may comprise at least one ofre-generating the executable object or operating at least a portion ofthe executable object to determine a first result value.

An embodiment of the present disclosure may further comprise determiningan order of operations of the executable object in response to theinvalidation graph.

An embodiment of the present disclosure may further compriseinterpreting a user edit value, and updating the executable object inresponse to the user edit value and the order of operations of theinvalidation graph.

An embodiment of the present disclosure may further comprise analyzinginstructions of the executable object, and updating the executableobject with a resource reduced executable object, wherein the resourcereduced executable object comprises instructions which, upon execution,cause at least one of the document server and the first client computingdevice to perform operations to provide the result value.

The lower resource utilization value may comprise at least one of: areduced number of processor operations; a reduced communicationutilization; a reduced memory usage; and a reduced externalcommunication value.

The executable object with the resource reduced executable object may bein response to a plurality of queries in the document.

An embodiment of the present disclosure may further comprise analyzinginstructions of the executable object, and updating the executableobject with the resource reduced executable object in response to thedata values in the document corresponding to the plurality of queries.

The selectively dividing operations of the first executable object maycomprise dividing operations in response to at least one of: a firstclient computing device resource parameter; contextual information; acurrent workload of the first client computing device; a currentworkload of the document server; and a current workload of the at leastone workflow server.

The divided operations of the executable object may further comprise aquery execution operation.

An embodiment of the present disclosure may further comprise providing adocument view in response to the query execution operation.

The at least one data value of the document may include a run-timeobject, wherein the run-time object comprises a state value.

The state value may comprise a value selected from: a default value; acontextually determined value; and a user selected value.

An embodiment of the present disclosure may further comprise storing thestate value separate from the document in response to a close operationof the document.

An embodiment of the present disclosure may further comprise updatingthe state value with the stored state value in response to an openoperation of the document.

The stored state value may comprise a user specific value.

The run-time object may comprise a control.

The control further may comprise at least one control selected from thecontrols consisting of: a switch control; a multi-state switch control;a multi-picker control; an option list picker control; a dropdown pickercontrol; a numeric slider control; a date slider control; a time slidercontrol; a map picker control; a text box control; a validated text boxcontrol; a structured text box control; a card layout control; a drawingshape control; a media visual control; a table renderer control; a chartcontrol; and a shape set control.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device; wherein the at least one client computingdevice comprises a unified document surface application circuitstructured to interpret a user formula value and to update the datavalues of the document in response to the user formula value; and aformula engine, wherein the formula engine is structured to determine acalculation definition in response to the user formula value and thedocument object model.

The unified document surface application circuit may be furtherstructured to validate the user formula value in response to a formulalibrary.

The formula engine may be further structured to generate an executableobject in response to the calculation definition, wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations in response to the calculation definition, and wherein theinstructions comprise a column-wise operation in response to the formulavalue comprising a table column reference.

The formula may comprise a query operation comprising at least one querycriterion and at least one data object.

The at least one query criterion may comprise a time value correspondingto the at least one data object, and wherein the formula engine isfurther structured to determine the calculation definition utilizing astate of the at least one data object determined in response to the timevalue.

The unified document surface application circuit may be furtherstructured to validate the user formula value by performing at least oneoperation selected from: correcting a user syntax; correcting a userformula name; correcting a user formula reference; and prompting a userfor a correction of any of the foregoing.

The unified document surface application circuit may be furtherstructured to provide a formula context display, the formula contextdisplay comprising at least one formula name, and further comprising atleast one of an argument representation and a description valuecorresponding to each of the at least one formula name.

The unified document surface application circuit may be furtherstructured to provide the formula context display as a table object.

The unified document surface application circuit may be furtherstructured to determine the at least one formula name in response to atleast one of: a character sequence entered by the user, or contextualinformation.

The unified document surface application circuit may be furtherstructured to provide a formula context display, the formula contextdisplay comprising at least one reference value.

The at least one reference value may comprise at least one referencevalue selected from the reference values consisting of: an object namefor one of the objects in the document; an object reference for one ofthe objects in the document; a tag for an object in the document; arange reference for a range in the document; and an external data sourcereference.

The user formula value may comprise a reference value selected from thereference values consisting of: an object name for one of the objects inthe document; an object reference for one of the objects in thedocument; a tag for an object in the document; a range reference for arange in the document; and an external data source reference.

The formula engine may be further structured to generate an executableobject in response to the calculation definition, wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations in response to the calculation definition.

The executable object may comprise instructions to perform an operationto dereference the reference value.

The operation to dereference the reference value may comprise theunified document application circuit providing a dereferenced value as amask value.

The unified document application circuit may be further structured topreserve the reference value.

The unified document application circuit may be further structured topreserve the reference value in a location selected from the locationsconsisting of: in an offset table column from corresponding ones of thedereferenced values; in at least one hidden table cell; in a systemtable; in at least one selectively viewable table cell; in a formulaentry location; and on a document object including the dereferencedvalue.

An embodiment of the present disclosure includes a method, comprising:interpreting an operation log, wherein the operation log comprises atleast one first sequential operation defining operations to create datavalues of a document; interpreting a user formula value and to updatethe data values of the document in response to the user formula value;and determining a calculation definition in response to the user formulavalue and a document object model.

An embodiment of the present disclosure may further compriseinterpreting a formula library, and validating the user formula value inresponse to the formula library.

An embodiment of the present disclosure may further comprise generatingan executable object in response to the calculation definition, whereinthe executable object comprises instructions which, upon execution,cause at least one of a document server and a first client computingdevice to perform operations in response to the calculation definition,and wherein the instructions comprise a column-wise operation inresponse to the formula value comprising a table column reference.

The formula may comprise a query operation comprising at least one querycriterion and at least one data object.

The at least one query criterion may comprise a time value correspondingto the at least one data object, the method further comprising updatingthe calculation definition utilizing a state of the at least one dataobject determined in response to the time value.

An embodiment of the present disclosure may further comprise validatingthe user formula value by performing at least one operation selectedfrom: correcting a user syntax; correcting a user formula name;correcting a user formula reference; and prompting a user for acorrection of any of the foregoing.

An embodiment of the present disclosure may further comprise providing aformula context display, the formula context display comprising at leastone formula name, and further comprising at least one of an argumentrepresentation and a description value corresponding to each of the atleast one formula name.

An embodiment of the present disclosure may further comprise providingthe formula context display as a table object.

An embodiment of the present disclosure may further comprise determiningthe at least one formula name in response to at least one of: acharacter sequence entered by the user, or contextual information.

An embodiment of the present disclosure may further comprise providing aformula context display, the formula context display comprising at leastone reference value.

The at least one reference value may comprise at least one referencevalue selected from the reference values consisting of: an object namefor one of the objects in the document; an object reference for one ofthe objects in the document; a tag for an object in the document; arange reference for a range in the document; and an external data sourcereference.

The user formula value may comprise a reference value selected from thereference values consisting of: an object name for one of the objects inthe document; an object reference for one of the objects in thedocument; a tag for an object in the document; a range reference for arange in the document; and an external data source reference.

An embodiment of the present disclosure may further comprise generatingan executable object in response to the calculation definition, whereinthe executable object comprises instructions which, upon execution,cause at least one of a document server and a first client computingdevice to perform operations in response to the calculation definition.

An embodiment of the present disclosure may further comprise performingan operation to dereference the reference value.

The operation to dereference the reference value may comprise providinga dereferenced value as a mask value.

An embodiment of the present disclosure may further comprise preservingthe reference value.

An embodiment of the present disclosure may further comprise preservingthe reference value in a location selected from the locations consistingof: in an offset table column from corresponding ones of thedereferenced values; in at least one hidden table cell; in a systemtable; in at least one selectively viewable table cell; in a formulaentry location; and on a document object including the dereferencedvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising: an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations in response to the calculation definition; wherein thedocument is positioned on at least one of the document server and afirst client computing device of the at least one client computingdevice, and wherein the formula engine is further structured tointerpret a user focus location, and to direct execution of theexecutable object in response to the user focus location.

The user focus location may comprise at least one location valueselected from the location values consisting of: a document sectioncurrently focused by a user; a document object currently focused by auser; a document canvas currently focused by a user; and a portion ofthe document currently visible to a user.

A document uniform surface application circuit may be further structuredto predict a second user focus location, and wherein the formula engineis further structured to direct execution of the executable object inresponse to the second user focus location.

A document uniform surface application circuit may be further structuredto predict the second user focus location in response to at least oneof: a state value; a previous operation sequence of a user accessing thedocument; a previous operation sequence of a user; a relationship valuebetween the user focus location and a data value within the documentthat is not within the user focus location; and a processing time tohydrate a data value within the document that is not within the userfocus location.

A document uniform surface application circuit may be further structuredto predict the second user focus location in response to at least oneof: a document type value; a data type value of a data value within thedocument that is within the user focus location; and a data type valueof a data value within the document that is not within the user focuslocation.

A document uniform surface application circuit may be further structuredto predict the second user focus location in response to at least one ofa user device type or a user device resource description.

An embodiment of the present disclosure may further comprise at leastone workflow server in communication with the document server, andwherein the executable object further comprises instructions which, uponexecution, cause at least one of the document server and the firstclient computing device to perform operations to provide a result valuein response to the calculation definition.

The document server may be further structured to divide operations ofthe executable object between at least two of: the document server, thefirst client computing device, and at least one of the workflow servers.

The data value of the document may comprise an external data sourcereference.

The external data source reference may comprise a first external datasource reference, wherein the data value of the document furthercomprises a second external data source reference, and wherein theformula engine is further structured to direct execution of theexecutable object in response to a first priority corresponding to thefirst external data source reference and a second priority correspondingto the second external data reference.

An embodiment of the present disclosure includes a method, comprising:interpreting an operation log, wherein the operation log comprises atleast one first sequential operation defining operations to create datavalues of a document; determining a calculation definition in responseto at least one formula of the document, and generating an executableobject in response to the calculation definition, and wherein theexecutable object comprises instructions which, upon execution, cause atleast one of the document server and the first client computing deviceto perform operations in response to the calculation definition;interpreting a user focus location, and directing execution of theexecutable object in response to the user focus location.

The user focus location may comprise at least one location valueselected from the location values consisting of: a document sectioncurrently focused by a user; a document object currently focused by auser; a document canvas currently focused by a user; and a portion ofthe document currently visible to a user.

An embodiment of the present disclosure may further comprise predictinga second user focus location, and wherein the directing execution of theexecutable object is further in response to the second user focuslocation.

An embodiment of the present disclosure may further comprise predictingthe second user focus location in response to at least one of: a statevalue; a previous operation sequence of a user accessing the document; aprevious operation sequence of a user; a relationship value between theuser focus location and a data value within the document that is notwithin the user focus location; and a processing time to hydrate a datavalue within the document that is not within the user focus location.

An embodiment of the present disclosure may further comprise predictingthe second user focus location in response to at least one of: adocument type value; a data type value of a data value within thedocument that is within the user focus location; and a data type valueof a data value within the document that is not within the user focuslocation.

An embodiment of the present disclosure may further comprise predictingthe second user focus location in response to at least one of a userdevice type or a user device resource description.

An embodiment of the present disclosure may further comprise dividingoperations of the executable object between at least two of: thedocument server, the first client computing device, and at least one ofworkflow server.

The data value of the document may comprise an external data sourcereference.

The external data source reference may comprise a first external datasource reference, wherein the data value of the document furthercomprises a second external data source reference, the method furthercomprising directing execution of the executable object in response to afirst priority corresponding to the first external data source referenceand a second priority corresponding to the second external datareference.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry; a user display circuit structured todetermine a document view in response to the data value, the first userinput, and the data structure, and to provide the document view to auser; a reference management circuit structured to interpret a userreference selection, and to determine a reference return value inresponse to the user reference selection; and wherein the user displaycircuit provides a reference return display to the user in response tothe reference return value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; an enhanced data processing circuitstructured to create at least one data structure in response to the oneof the in-line data access entry and the table-based calculation entry,and to position the data structure on the unified document surface;

a user interaction circuit structured to interpret a user selection, theuser selection comprising at least a portion of the data value, andfurther structured to interpret a second user selection comprising anextract value; an extracted data generation circuit structured to createa data view in response to the user selection; and a user displaycircuit structured to display at least a portion of the data view inresponse to the first user input, the second user input, and the extractvalue.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to create a local operation log byappending a text entry value to the first operation log in response tothe first user input;

an enhanced data processing circuit structured to create at least onedata structure in response to the one of the in-line data access entryand the table-based calculation entry, and to append the at least onedata structure to the local operation log; wherein the unified documentsurface application circuit is further structured to communicate achange value for the first operation log to the first computing devicein response to the first operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to determine a text entry value tothe first user input; an enhanced data processing circuit structured tocreate at least one data structure in response to the one of the in-linedata access entry and the table-based calculation entry; a user displaycircuit structured to provide a first view to the user in response tothe data value, the text entry value, and the at least one datastructure; a data management circuit structured to interpret a usertable selection value, and to determine at least one of a table dataupdate or a table configuration update in response to the user tableselection value; and wherein the user display circuit is furtherstructured to update a second view in response to the at least one ofthe table data update or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to determine a text entry value inresponse to the first user input; an enhanced data processing circuitstructured to create at least one data structure in response to the oneof the in-line data access entry and the table-based calculation entry;a user interaction circuit structured to interpret a user selectioncomprising at least a portion of the data value, and wherein the userselection comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to create a data viewin response to the user selection, the text entry value, and the datastructure; and a user display circuit structured to display at least aportion of the data view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate an operation log to a second computing device,wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document; adocument object model, wherein the document object model comprises anobject definition corresponding to each of a plurality of objects in thedocument; wherein the document is at least partially positioned on atleast one of the document server and the second computing device; thesecond computing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input; an enhanced data processing circuit structuredto create at least one data structure in response to the one of thein-line data access entry and the table-based calculation entry, and toposition the data structure on the unified document surface; wherein theunified document surface application circuit is further structured tointerpret a user formula value and to update the data values of thedocument in response to the user formula value; and a formula engine,wherein the formula engine is structured to determine a calculationdefinition in response to the user formula value and the document objectmodel.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit todetermine a text entry value on a unified document surface in responseto the first user input; an enhanced data processing circuit structuredto create at least one data structure in response to the one of thein-line data access entry and the table-based calculation entry; a userdisplay circuit structured to provide a first view in response to thedata value, the text entry value, and the at least one data structure; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data value, and further in response toat least one of: a user visualization selection or a user context value;and wherein the user display circuit is further structured to provide asecond view in response to the VE, the data value, the text entry value,and the at least one data structure.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input;

an enhanced data processing circuit structured to create at least onedata structure in response to the one of the in-line data access entryand the table-based calculation entry, and to position the datastructure on the unified document surface; a user notification rulescircuit structured to interpret a user notification profile valuecomprising a notification trigger value and a notification responsevalue; a user notification circuit structured to determine whether anevent trigger has occurred in response to the notification trigger valueand the data value; and

a user interaction circuit structured to provide a notification to auser in response to the event trigger and the notification responsevalue.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document server at leastintermittently communicatively coupled to a second computing device, andstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input; an enhanced data processing circuit structuredto create at least one data structure in response to the one of thein-line data access entry and the table-based calculation entry, and toposition the data structure on the unified document surface; a userdisplay circuit structured to determine a document view in response totext flow entry and the at least one data structure, and to provide thedocument view to a user; and a document synchronization circuitstructured to communicate the text entry value and the at least one datastructure to the first computing device.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry, tointerpret a user external data reference value, and to interpret adisplay location selection value; a text flow processing circuitstructured to position a text entry value on a unified document surfacein response to the first user input; an enhanced data processing circuitstructured to create at least one data structure in response to the oneof the in-line data access entry and the table-based calculation entry,and to position the data structure on the unified document surface; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a dataenrichment circuit structured to perform a display enrichment operationin response to the external data source and the display locationselection value; and a user display circuit structured to position anenriched display value on the unified document surface in response tothe display location selection value and the display enrichmentoperation.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; and anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and to position the data structure onthe unified document surface; a user interaction circuit structured tointerpret a table grouping input value associated with the at least onedata structure, the at least one data structure comprising a pluralityof categories and a plurality of associated data sets corresponding tothe plurality of categories; a table aggregation circuit structured todetermine an aggregation value in response to the table grouping inputvalue, wherein the aggregation value corresponds to at least one of theplurality of categories; and wherein the user interaction circuit isfurther structured to provide an aggregated table view in response tothe aggregation value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and to position the data structure onthe unified document surface; wherein the unified document applicationcircuit is further structured to interpret a user table input value, theuser table input value comprising a plurality of table data values ofthe at least one data structure; a table management circuit structuredto determine a table organization value in response to the table datavalues, wherein the table organization value comprises at least onevalue selected from the values consisting of: a column naming scheme; asorting scheme; a filtering scheme; an aggregation scheme; and aformatting scheme; and a user display circuit structured to provide atable view in response to the table organization value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and to position the data structure onthe unified document surface; a user interaction circuit structured tointerpret a user reference entry; a reference management circuitstructured to determine a reference return value in response to the userreference entry; and a user display circuit structured to determine adocument view in response to the reference return value, and to providethe document view to a user.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input an enhanced data processing circuit structuredto create at least one data structure in response to the one of thein-line data access entry and the table-based calculation entry, and toposition the data structure on the unified document surface, wherein thedata value further comprises a first table object and a second embeddedtable object; wherein each of the first table object and a secondembedded table object comprise a corresponding table specific name, andwherein each of the first table object and the second embedded tableobject comprise a corresponding parent object name, wherein a firstparent object name corresponding to the first table object comprises adistinct name from a second parent object name corresponding to thesecond embedded table object; and

wherein the data value further comprises a table referencing valuedirected to the second embedded table object, wherein the tablereferencing value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the table referencingvalue comprises the first parent object name.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of a document to the second computing device; thesecond computing device comprising: a unified document surfaceapplication circuit structured to interpret a first user inputcomprising a text flow entry, and to interpret a second user inputcomprising one of an in-line data access entry and a table-basedcalculation entry; a text flow processing circuit structured to positiona text entry value on a unified document surface in response to thefirst user input; and an enhanced data processing circuit structured tocreate at least one data structure in response to the one of the in-linedata access entry and the table-based calculation entry, and to positionthe data structure on the unified document surface; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the second computing device to performoperations in response to the calculation definition; wherein thedocument is positioned on at least one of the document server and afirst client computing device of the at least one client computingdevice, and wherein the formula engine is further structured tointerpret a user focus location, and to direct execution of theexecutable object in response to the user focus location.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and to position the data structure onthe unified document surface; a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value, whereinthe notification response value comprises an action link definition anda notification location value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the data value; and a user interactioncircuit structured to provide a notification to a user in response tothe event trigger and the notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document servercomprising a client resource circuit structured to determine a clientresource value, and wherein the document server is structured tocommunicate a data value to the second computing device in response tothe client resource value, the data value comprising at least a portionof a document; the second computing device comprising: a unifieddocument surface application circuit structured to interpret a firstuser input comprising a text flow entry, and to interpret a second userinput comprising one of an in-line data access entry and a table-basedcalculation entry; a text flow processing circuit structured to positiona text entry value on a unified document surface in response to thefirst user input; an enhanced data processing circuit structured tocreate at least one data structure in response to the one of the in-linedata access entry and the table-based calculation entry, and to positionthe data structure on the unified document surface; a user displaycircuit structured to determine at least one candidate entry in responseto at least one of the text entry value or the at least one datastructure; and wherein the unified document surface application circuitis further structured to provide an autocompleted entry in response to auser selection of the at least one candidate entry.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input;

an enhanced data processing circuit structured to create at least onedata structure in response to the one of the in-line data access entryand the table-based calculation entry, and to position the datastructure on the unified document surface; and wherein the unifieddocument surface application circuit is further structured to update ametadata value corresponding to at least one of the text flow entry andthe data structure, wherein the metadata value comprises at least onevalue selected from the values consisting of: a timestamp value, a tagvalue, and a user identifier value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document, and whereinthe data value further comprises at least one of: a database referencevalue, a database authorization token, and a local copy of at least aportion of data on the database; the second computing device comprising:

a unified document surface application circuit structured to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input; and an enhanced data processing circuitstructured to create at least one data structure in response to the oneof the in-line data access entry and the table-based calculation entry,and to position the data structure on the unified document surface.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a user location value, to interpret afirst user input comprising a text flow entry, and to interpret a seconduser input comprising one of an in-line data access entry and atable-based calculation entry; a text flow processing circuit structuredto position a text entry value on a unified document surface in responseto the first user input and the user location value; and an enhanceddata processing circuit structured to create at least one data structurein response to the one of the in-line data access entry and thetable-based calculation entry, and further in response to the userlocation value, and to position the data structure on the unifieddocument surface.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document servercomprising a client resource circuit structured to determine a clientresource value, and wherein the document server is structured tocommunicate a data value to the second computing device in response tothe client resource value, the data value comprising at least a portionof a document; the second computing device comprising: a unifieddocument surface application circuit structured to interpret a firstuser input comprising a text flow entry, and to interpret a second userinput comprising one of an in-line data access entry and a table-basedcalculation entry; a text flow processing circuit structured to positiona text entry value on a unified document surface in response to thefirst user input; and an enhanced data processing circuit structured tocreate at least one data structure in response to the one of the in-linedata access entry and the table-based calculation entry, and to positionthe data structure on the unified document surface.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising at least oneof: an in-line data access entry, a table-based calculation entry, and adata object entry; wherein the data object entry comprises at least onedata object selected from the data objects consisting of a graph, achart, an image, a video file, an audio file, a media file, videocontent, audio content, and media content; a text flow processingcircuit structured to position a text entry value on a unified documentsurface in response to the first user input; and an enhanced dataprocessing circuit structured to create at least one data structure inresponse to second user input, and to position the data structure on theunified document surface.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device comprising; a user display circuit structured todetermine a document view in response to the operation log, and toprovide the document view to a user; a reference management circuitstructured to interpret a user reference selection, and to determine areference return value in response to the user reference selection;

a unified document surface application circuit structured to create alocal operation log in response to the first operation log and thereference return value, the local operation log comprising at least onesequential operation defining operations to create a second document,and to communicate a change value to the first computing device inresponse to the first operation log and the local operation log; andwherein the user display circuit is further structured to update thefirst document view in response to the reference return value.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view tothe user in response to the data element; a data management circuitstructured to interpret a user table selection value, and to determineat least one of a table data update or a table configuration update inresponse to the user table selection value; a reference managementcircuit structured to interpret a user reference selection, and todetermine a reference return value in response to the user referenceselection; and wherein the user display circuit further provides areference return display to the user in response to the reference returnvalue, and is further structured to update a second view in response tothe reference return display and the at least one of the table dataupdate or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device; wherein the at least one client computingdevice comprises: a user display circuit structured to determine adocument view in response to the user formula value, and to provide thedocument view to a user; a reference management circuit structured tointerpret a user reference selection comprising a user formula value,and to determine a reference return value in response to the userreference selection; a unified document surface application circuitstructured to update the data values of the document in response to theuser reference selection; and wherein the user display circuit providesa reference return display to the user in response to the referencereturn value; and a formula engine, wherein the formula engine isstructured to determine a calculation definition in response to the userformula value and the document object model.

An embodiment of the present disclosure includes a system, comprising: acomputing device, comprising: a unified document application circuitstructured to interpret a user table input value, the user table inputvalue comprising a plurality of table data values; a referencemanagement circuit structured to interpret a user reference selection,and to determine a reference return value in response to the userreference selection; and a table management circuit structured todetermine a table organization value in response to the table datavalues, wherein the table organization value comprises at least onevalue selected from the values consisting of: a column naming scheme; asorting scheme; a filtering scheme; an aggregation scheme; and aformatting scheme; and a user display circuit structured to provide atable view in response to the table organization value and the referencereturn value, and to provide the document view to a user.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; a reference management circuit structured to interpret a userreference selection comprising a table referencing value, and todetermine a reference return value in response to the user referenceselection; wherein the table referencing value is directed to the secondembedded table object, wherein the table referencing value comprises aportion of a formula comprising a corresponding parent object name thatis distinct from the first parent object name, and wherein a parenthierarchy for the table referencing value comprises the first parentobject name; and

a user display circuit structured to provide a reference return displayto the user in response to the reference return value, and to providethe document view to a user.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a unified document application circuit structured tointerpret a user entry value comprising a user reference selection; areference management circuit structured to determine at least onereference return value in response to the user reference selection andthe data value; a user display circuit structured to determine at leastone candidate entry in response to the at least one reference returnvalue; and wherein the unified document surface application circuit isfurther structured to provide an autocompleted entry in response to auser selection of the at least one candidate entry.

An embodiment of the present disclosure includes an apparatus,comprising: a client computing device structured to receive a dataelement from a document server, the data element comprising at least aportion of a document; the client computing device further comprising: auser display circuit structured to determine a document view in responseto the data element, and to provide the document view to a user; areference management circuit structured to interpret a user referenceselection, and to determine a reference return value in response to theuser reference selection and a metadata value, wherein the metadatavalue comprises at least one value selected from the values consistingof: a timestamp value, a tag value, and a user identifier value; andwherein the user display circuit provides a reference return display tothe user in response to the reference return value.

An embodiment of the present disclosure includes an apparatus,comprising: a client computing device structured to receive a dataelement from a document server, the data element comprising at least aportion of a document; the client computing device further comprising: auser display circuit structured to determine a document view in responseto the data element, and to provide the document view to a user; areference management circuit structured to interpret a user referenceselection, wherein the user reference selection comprises a referencedirected to at least one of: a database; a website; a network location;a second document distinct from the document; data positioned on a cloudserver; a portion of any of the foregoing; a local copy of any of theforegoing; and combinations of any of the foregoing; and wherein thereference management circuit is further structured to determine areference return value in response to the user reference selection; andwherein the user display circuit provides a reference return display tothe user in response to the reference return value.

An embodiment of the present disclosure includes an apparatus,comprising: a client computing device structured to receive a dataelement from a document server, the data element comprising at least aportion of a document; the client computing device further comprising: auser display circuit structured to determine a document view in responseto the data element, and to provide the document view to a user; areference management circuit structured to interpret a user referenceselection, and to determine a reference return value in response to theuser reference selection; and wherein the user display circuit providesa reference return display to the user in response to the referencereturn value.

The reference management circuit may be further structured to interpreta user location value, and to determine the reference return valuefurther in response to the user location value.

The user display circuit may be further structured to interpret a userlocation value, and to provide the reference return display further inresponse to the reference return value.

The user reference selection may further comprise a user location value.

An embodiment of the present disclosure includes an apparatus,comprising: a client computing device structured to receive a dataelement from the document server, the data element comprising at least aportion of a document; the client computing device further comprising:

a user display circuit structured to determine a document view inresponse to the data element, and to provide the document view to auser; a reference management circuit structured to interpret a userreference selection, and to determine a reference return value inresponse to the user reference selection; and wherein the user displaycircuit provides a reference return display to the user in response tothe reference return value.

A client resource circuit may be structured to determine a clientresource value, and wherein the reference management circuit is furtherstructured to interpret the reference return value further in responseto the client resource value.

A client resource circuit may be structured to determine a clientresource value, and wherein the user display circuit is furtherstructured to provide the reference return display further in responseto the client resource value.

A document server may comprise a client resource circuit structured todetermine a client resource value, and wherein the user referenceselection further comprises a user location value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection; an application configuration circuit structured tointerpret at least one of: a user noun selection, a user verb selection,or a user context selection; the application configuration circuitfurther structured to determine an application configuration value inresponse to the data view, and further in response to the at least oneof: the user noun selection, the user verb selection, or the usercontext selection; and an application publication circuit structured topublish an application in response to the application configurationvalue.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to: create a first document view in response to thefirst operation log, the document view comprising content generatedusing at least a portion of the first operation log; provide the firstdocument view to a display device; receive a user document change inputvalue; create a local operation log in response to the first operationlog and the user document change input value, the local operation logcomprising at least one sequential operation defining operations tocreate a second document; and update the first document view in responseto the user document change input value; communicate a change value forthe first operation log to the first computing device in response to thefirst operation log and the local operation log; an applicationconfiguration circuit structured to interpret at least one of: a usernoun selection, a user verb selection, or a user context selection; theapplication configuration circuit further structured to determine anapplication configuration value in response to the user document changeinput value, and further in response to the at least one of: the usernoun selection, the user verb selection, or the user context selection;and an application publication circuit structured to publish anapplication in response to the application configuration value

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to create a data viewin response to the user selection; a user display circuit structured todisplay at least a portion of the data view in response to the userselection; an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured to determine an application configuration value in responseto the user selection, and further in response to the at least one of:the user noun selection, the user verb selection, or the user contextselection; and an application publication circuit structured to publishan application in response to the application configuration value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device; wherein the at least one client computingdevice comprises: a unified document surface application circuitstructured to interpret a user formula value and to update the datavalues of the document in response to the user formula value; anapplication configuration circuit structured to interpret at least oneof: a user noun selection, a user verb selection, or a user contextselection; the application configuration circuit further structured todetermine an application configuration value in response to the userformula value, and further in response to the at least one of: the usernoun selection, the user verb selection, or the user context selection;and an application publication circuit structured to publish anapplication in response to the application configuration value; and aformula engine, wherein the formula engine is structured to determine acalculation definition in response to the user formula value and thedocument object model.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user display circuitstructured to provide a first view in response to the data element, thefirst view comprising at least a portion of the data element; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data element, and further in response toat least one of: a user visualization selection or a user context value;wherein the user display circuit is further structured to provide asecond view in response to the VE and the data element; an applicationconfiguration circuit structured to interpret at least one of: a usernoun selection, a user verb selection, or a user context selection; theapplication configuration circuit further structured to determine anapplication configuration value in response to the VE, and further inresponse to the at least one of: the user noun selection, the user verbselection, or the user context selection; and an application publicationcircuit structured to publish an application in response to theapplication configuration value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user interaction circuit structured tointerpret a user reference entry; a reference management circuitstructured to determine a reference return value in response to the userreference entry;

a user display circuit structured to determine a document view inresponse to the reference return value, and to provide the document viewto a user; an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured to determine an application configuration value in responseto the reference return value, and further in response to the at leastone of: the user noun selection, the user verb selection, or the usercontext selection; and an application publication circuit structured topublish an application in response to the application configurationvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising; an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations in response to the calculation definition; wherein thedocument is positioned on at least one of the document server and afirst client computing device of the at least one client computingdevice, and wherein the formula engine is further structured tointerpret a user focus location, and to direct execution of theexecutable object in response to the user focus location; and whereinthe first client computing device comprises: an applicationconfiguration circuit structured to interpret at least one of: a usernoun selection, a user verb selection, or a user context selection; theapplication configuration circuit further structured to determine anapplication configuration value in response to at least one of thecalculation definition and the user focus location, and further inresponse to the at least one of: the user noun selection, the user verbselection, or the user context selection; and an application publicationcircuit structured to publish an application in response to theapplication configuration value.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to:interpret at least one of: a user noun selection, a user verb selection,or a user context selection; interpret a source data value from at leastone of: a database; a website; a network location; a second documentdistinct from the document; data positioned on a cloud server; a portionof any of the foregoing; a local copy of any of the foregoing; andcombinations of any of the foregoing; and determine an applicationconfiguration value in response to the source data value, and further inresponse to the at least one of: the user noun selection, the user verbselection, or the user context selection; and an application publicationcircuit structured to publish an application in response to theapplication configuration value.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to:interpret at least one of: a user noun selection, a user verb selection,or a user context selection; determine a target device resource value;and determine an application configuration value in response to a sourcedata value, the at least one of: the user noun selection, the user verbselection, or the user context selection, and the target device resourcevalue; and an application publication circuit structured to publish anapplication in response to the application configuration value.

The user noun selection may further comprise at least a portion of thesource data value, and wherein the application configuration circuit isfurther structured to include the at least a portion of the source datavalue in response to the target device resource value.

The application configuration value may comprise instructions to includethe at least a portion of the source data value as at least one of:linked data, referenced data, or incorporated data.

The application configuration circuit may be further structured todetermine the instructions to include the at least a portion of thesource data value in response to the target device resource value.

An embodiment of the present disclosure includes an apparatus,comprising: a visualization tool (VT) circuit structured to determine avisualization element (VE) in response to a data value comprising atleast a portion of a document, and further in response to at least oneof: a user visualization selection or a user context value; and anapplication configuration circuit structured to interpret at least oneof: a user noun selection, a user verb selection, or a user contextselection; the application configuration circuit further structured todetermine an application configuration value in response to the VE, andfurther in response to the at least one of: the user noun selection, theuser verb selection, or the user context selection; and an applicationpublication circuit structured to publish an application in response tothe application configuration value.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured interpret a source data value and a compression scheme; theapplication configuration circuit further structured to determine anapplication configuration value in response to the source data value,the compression scheme, and the at least one of: the user nounselection, the user verb selection, or the user context selection; an anapplication publication circuit structured to publish an application inresponse to the application configuration value.

The application configuration circuit may be further structured todetermine the application configuration value in response to the sourcedata value and the compression scheme by performing at least oneoperation from: compressing at least a portion of the source data valueincluded in the application or configuring the application to utilizecompressed communications during operation of the application.

The compression scheme may comprise at least one of a lossy compressionalgorithm and a lossless compression algorithm.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured to determine an application configuration value in responseto a source data value, and further in response to the at least one of:the user noun selection, the user verb selection, or the user contextselection; the application configuration circuit further structured todetermine the application configuration value such that the applicationis responsive to a target user location value; and an applicationpublication circuit structured to publish an application in response tothe application configuration value.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured to determine an application configuration value in responseto a source data value, and further in response to the at least one of:the user noun selection, the user verb selection, or the user contextselection; the application configuration circuit further structured todetermine the application configuration value such that the applicationis responsive to a target user device resource value; and an applicationpublication circuit structured to publish an application in response tothe application configuration value.

An embodiment of the present disclosure includes an apparatus,comprising: an application configuration circuit structured to interpretat least one of: a user noun selection, a user verb selection, or a usercontext selection; the application configuration circuit furtherstructured to determine an application configuration value in responseto a source data value, and further in response to the at least one of:the user noun selection, the user verb selection, or the user contextselection; wherein the source data value comprises at least one dataobject selected from the data objects consisting of a graph, a chart, animage, a video file, an audio file, a media file, video content, audiocontent, and media content; and an application publication circuitstructured to publish an application in response to the applicationconfiguration value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a document comprising a first operation log tothe second computing device, the first operation log comprising at leastone first sequential operation defining operations to create a firstdocument; the second computing device comprising: a unified documentsurface application circuit structured to: create a first document viewin response to the first operation log, the document view comprisingcontent generated using at least a portion of the first operation log;to receive a user document change input value, and to create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; to update the first document view in response to the userdocument change input value; and to communicate a change value for thefirst operation log to the first computing device in response to thefirst operation log and the local operation log; a user display circuitstructured to provide at least a portion of the first document view to adisplay device; a user interaction circuit structured to interpret auser selection comprising at least one data value, the documentcomprising the at least one data value, and further structured tointerpret a second user selection comprising an extract value; anextracted data generation circuit structured update the first data viewin response to the second user selection; and the user display circuitfurther structured to provide at least a portion of the updated firstdata view to the display device.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view tothe user in response to the data element; a data management circuitstructured to interpret a user table selection value, and to determineat least one of a table data update or a table configuration update inresponse to the user table selection value; and wherein the user displaycircuit is further structured to update a second view in response to theat least one of the table data update or the table configuration updatea user interaction circuit structured to interpret a user selectioncomprising at least a portion of the second view, and further structuredto interpret a second user selection comprising an extract value; anextracted data generation circuit structured to create an extract dataview in response to the user selection; and wherein the user displaycircuit structured is further structured to display at least a portionof the extract data view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to: interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; and interpret a second user selection comprising an extractvalue; an extracted data generation circuit structured to create a dataview in response to the user selection and the second user selection;and a user display circuit structured to display at least a portion ofthe data view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device; wherein the at least one client computingdevice comprises: a unified document surface application circuitstructured to interpret a user formula value and to update the datavalues of the document in response to the user formula value; a userinteraction circuit structured to: interpret a user selection comprisingat least one of the user formula value and the updated data values ofthe document; and interpret a second user selection comprising anextract value; an extracted data generation circuit structured to createan extracted data view in response to the user selection; a user displaycircuit structured to display at least a portion of the data view inresponse to the extract value; and a formula engine, wherein the formulaengine is structured to determine a calculation definition in responseto the user formula value and the document object model.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user display circuitstructured to provide a first view in response to the data element, thefirst view comprising at least a portion of the data element; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data element, and further in response toat least one of: a user visualization selection or a user context value;a user interaction circuit structured to: interpret a user selectioncomprising at least one aspect of the VE; and interpret a second userselection comprising an extract value; an extracted data generationcircuit structured to create an extracted data view in response to theuser selection; and a user display circuit structured to display atleast a portion of the extracted data view in response to the extractvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to: interpret a userexternal data reference value; interpret a display location selectionvalue; interpret a user selection comprising at least one data value,the document comprising the at least one data value; and interpret asecond user selection comprising an extract value; an external dataaccess circuit structured to access an external data source in responseto the user external data reference value; a data enrichment circuitstructured to perform a display enrichment operation in response to theexternal data source and the display location selection value, and todetermine an enriched display value in response to the display locationselection value and the display enrichment operation; an extracted datageneration circuit structured to create a data view in response to theuser selection and the enriched display value; and a user displaycircuit structured to display at least a portion of the data view inresponse to the extract value.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a table grouping inputvalue associated with at least one table, the table comprising aplurality of categories and a plurality of associated data setscorresponding to the plurality of categories; a table aggregationcircuit structured to determine an aggregation value in response to thetable grouping input value, wherein the aggregation value corresponds toat least one of the plurality of categories; the user interactioncircuit further structured to interpret a user selection comprising atleast a portion of the aggregation value, and to interpret a second userselection comprising an extract value; an extracted data generationcircuit structured to create an aggregated table view in response to theaggregation value and the user selection; and a user display circuitstructured to display at least a portion of the aggregated table view inresponse to the extract value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user interaction circuit structured tointerpret: a user reference entry; a user selection comprising at leastone data value, the document comprising the at least one data value; anda second user selection comprising an extract value; a referencemanagement circuit structured to determine a reference return value inresponse to the user reference entry; an extracted data generationcircuit structured to create a data view in response to the referencereturn value and the user selection; and a user display circuitstructured to display at least a portion of the data view in response tothe extract value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and wherein the data value further comprises a table referencingvalue directed to the second embedded table object, wherein the tablereferencing value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the table referencingvalue comprises the first parent object name; wherein the secondcomputing device comprises: a user interaction circuit structured tointerpret: a user selection comprising at least one data value, the datavalue comprising at least a portion of at least one of: the first tableobject, the second table object, and the formula; and a second userselection comprising an extract value; an extracted data generationcircuit structured to create a data view in response to the userselection; and a user display circuit structured to display at least aportion of the data view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising: an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a formula engine,wherein the formula engine determines a calculation definition inresponse to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the first client computing device to performoperations in response to the calculation definition; wherein thedocument is positioned on at least one of the document server and afirst client computing device of the at least one client computingdevice, and wherein the formula engine is further structured tointerpret a user focus location, and to direct execution of theexecutable object in response to the user focus location; and whereinthe at least one client computing device comprises: a user interactioncircuit structured to interpret a user selection comprising at least oneof the data values of the document, and further structured to interpreta second user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection; and a user display circuit structured to display atleast a portion of the data view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection and a metadata value, wherein the metadata valuecomprises at least one value selected from the values consisting of: atimestamp value, a tag value, and a user identifier value; and a userdisplay circuit structured to display at least a portion of the dataview in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value, wherein the extractvalue comprises at least one value selected from the values consistingof: a report content value, a report location value, a report formattingvalue, and a report template; an extracted data generation circuitstructured to create a data view in response to the user selection; auser display circuit structured to display at least a portion of thedata view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret: a userselection comprising at least one source data value, the at least onesource data value comprising a data value selected from at least one of:a database; a website; a network location; a second document distinctfrom the document; data positioned on a cloud server; a portion of anyof the foregoing; a local copy of any of the foregoing; and combinationsof any of the foregoing; and a second user selection comprising anextract value; an extracted data generation circuit structured to createa data view in response to the user selection; and a user displaycircuit structured to display at least a portion of the data view inresponse to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; a visualization tool(VT) circuit structured to determine a visualization element (VE) inresponse to the user selection, and further in response to at least oneof: a user visualization selection or a user context value; and anextracted data generation circuit structured to create a data view inresponse to the VE; a user display circuit structured to display atleast a portion of the data view in response to the extract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret: a userselection comprising at least one data value, the document comprisingthe at least one data value; a second user selection comprising anextract value; a client resource circuit structured to determine atarget device resource value; an extracted data generation circuitstructured to create a data view in response to the user selection andthe target device resource value; and a user display circuit structuredto display at least a portion of the data view in response to theextract value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection; a user display circuit structured to display at least aportion of the data view in response to the extract value; an wherein atleast one of the user selection and data view comprise at least one dataobject selected from the data objects consisting of a graph, a chart, animage, a video file, an audio file, a media file, video content, audiocontent, and media content.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, the document comprisingthe at least one data value, and further structured to interpret asecond user selection comprising an extract value; an extracted datageneration circuit structured to create a data view in response to theuser selection; a user notification rules circuit structured tointerpret a user notification profile value comprising a notificationtrigger value and a notification response value, wherein thenotification response value comprises an action link definition and anotification location value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the at least one data value; and a userinteraction circuit structured to provide a notification to a user inresponse to the event trigger, the notification response value, and thedata view.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a user table selection value; determine atleast one of a table data update or a table configuration update inresponse to the user table selection value; create a local operation login response to the first operation log and the user document changeinput value, the local operation log comprising at least one sequentialoperation defining operations to create a second document; update thefirst document view in response to the user document change input value;and communicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device;

to interpret a user selection comprising at least one data value,wherein the document comprises the at least one data value, and whereinthe at least one data value comprises at least one of a reference or alink to an external source data, and to create a local operation log inresponse to the first operation log and the user selection, the localoperation log comprising at least one sequential operation definingoperations to create a second document; to update the first documentview in response to the user selection; and to communicate a changevalue for the first operation log to the first computing device inresponse to the first operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; a documentobject model, wherein the document object model comprises an objectdefinition corresponding to each of a plurality of objects referenced inthe first operation log; wherein the document is at least partiallypositioned on at least one of the document server and a second computingdevice; wherein the second computing device is structured to: create afirst document view in response to the first operation log, the documentview comprising content generated using at least a portion of the firstoperation log; provide the first document view to a display device;receive a user document change input value comprising a user formulavalue, and create a local operation log in response to the firstoperation log and the user document change input value, the localoperation log comprising at least one sequential operation definingoperations to create a second document; update the first document viewin response to the user document change input value; and communicate achange value for the first operation log to the first computing devicein response to the first operation log and the local operation log; anda formula engine, wherein the formula engine is structured to determinea calculation definition in response to the local operation log, theuser formula value, and the document object model.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising at least one data value of the firstdocument; determine a visualization element (VE) in response to the userdocument change input value, and further in response to at least one of:a user visualization selection or a user context value; create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; update the first document view in response to the VE; andcommunicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a user notification profile value, theuser notification profile value comprising a notification trigger valueand a notification response value, and to create a local operation login response to the first operation log and the user document changeinput value, the local operation log comprising at least one sequentialoperation defining operations to create a second document; determinewhether an event trigger has occurred in response to the notificationtrigger value and at least one data value of the first document; providea notification to a user in response to the event trigger and thenotification response value; update the first document view in responseto the user document change input value; and communicate a change valuefor the first operation log to the first computing device in response tothe first operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising: adocument server comprising a client resource circuit structured todetermine a client resource value, and the document server structured tocommunicate a data value to the second computing device in response tothe client resource value, the data value comprising at least a portionof a document; the document server further structured to communicate afirst operation log to the second computing device, the first operationlog comprising at least one first sequential operation definingoperations to create a first document; the second computing devicestructured to: create a first document view in response to the firstoperation log and the data value, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value, and to create a local operation log in response tothe first operation log and the user document change input value, thelocal operation log comprising at least one sequential operationdefining operations to create a second document; update the firstdocument view in response to the user document change input value; andcommunicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a user external data reference value and adisplay location selection value; access an external data source inresponse to the user external data reference value; perform a displayenrichment operation in response to the external data source and thedisplay location selection value; create a local operation log inresponse to the first operation log and the display enrichmentoperation, the local operation log comprising at least one sequentialoperation defining operations to create a second document; update thefirst document view in response to the enriched display value; andcommunicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a table grouping input value associatedwith at least one table, the table comprising a plurality of categoriesand a plurality of associated data sets corresponding to the pluralityof categories; determine an aggregation value in response to the tablegrouping input value, wherein the aggregation value corresponds to atleast one of the plurality of categories; create a local operation login response to the first operation log and the aggregation value, thelocal operation log comprising at least one sequential operationdefining operations to create a second document; update the firstdocument view in response to the aggregation value; and communicate achange value for the first operation log to the first computing devicein response to the first operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a user table input value, the user tableinput value comprising a plurality of table data values; determine atable organization value in response to the table data values, whereinthe table organization value comprises at least one value selected fromthe values consisting of: a column naming scheme; a sorting scheme; afiltering scheme; an aggregation scheme; and a formatting scheme; createa local operation log in response to the first operation log and thetable organization value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; update the first document view in response to the tableorganization value; and communicate a change value for the firstoperation log to the first computing device in response to the firstoperation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; receive a user documentchange input value comprising a user reference entry; determine areference return value in response to the user reference entry; create alocal operation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; update the first document view in response to the referencereturn value; and communicate a change value for the first operation logto the first computing device in response to the first operation log andthe local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document having a firsttable object and a second embedded table object; wherein each of thefirst table object and a second embedded table object comprise acorresponding table specific name, and wherein each of the first tableobject and the second embedded table object comprise a correspondingparent object name, wherein a first parent object name corresponding tothe first table object comprises a distinct name from a second parentobject name corresponding to the second embedded table object; thesecond computing device structured to: create a first document view inresponse to the first operation log, the document view comprisingcontent generated using at least a portion of the first operation log;provide the first document view to a display device; receive a tablereferencing value directed to the second embedded table object, whereinthe table referencing value comprises a portion of a formula comprisinga corresponding parent object name that is distinct from the firstparent object name, and wherein a parent hierarchy for the tablereferencing value comprises the first parent object name; create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; update the first document view in response to the tablereferencing value; and communicate a change value for the firstoperation log to the first computing device in response to the firstoperation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; a formulaengine, wherein the formula engine determines a calculation definitionin response to at least one formula of the first document, and whereinthe formula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the second computing device to performoperations in response to the calculation definition; and wherein thedocument is positioned on at least one of the document server and thesecond client computing device, and wherein the formula engine isfurther structured to interpret a user focus location, and to directexecution of the executable object in response to the user focuslocation; the second computing device structured to: create a firstdocument view in response to the first operation log, the document viewcomprising content generated using at least a portion of the firstoperation log and the executable object; provide the first document viewto a display device; receive a user document change input value, and tocreate a local operation log in response to the first operation log andthe user document change input value, the local operation log comprisingat least one sequential operation defining operations to create a seconddocument; communicate a change value for the first operation log to thefirst computing device in response to the first operation log and thelocal operation log; and wherein the formula engine is furtherstructured to generate an updated executable object in response to theuser document change input value, and to further direct execution of theupdated executable object in response to the user focus location; andwherein the second computing device is further structured to update thefirst document view in response to the user document change input valueand the updated executable object.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device;

receive a user document change input value, and to create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; determine a metadata value, wherein the metadata valuecomprises at least one value selected from the values consisting of: atimestamp value, a tag value, and a user identifier value; update thefirst document view in response to the user document change input valueand the metadata value; and

communicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

The second computing device may be further structured to update thelocal operation log in response to the metadata value, and tocommunicate the change value for the first operation log to the firstcomputing device further in response to the first operation log and theupdated local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document; the secondcomputing device structured to: create a first document view in responseto the first operation log, the document view comprising contentgenerated using at least a portion of the first operation log; providethe first document view to a display device; to receive a user selectioncomprising at least one data value of the document, and at least one ofa user visualization selection and a user context value; determine avisualization element (VE) in response to the user selection and the atleast one of the user visualization selection and the user contextvalue; create a local operation log in response to the first operationlog and the VE, the local operation log comprising at least onesequential operation defining operations to create a second document;update the first document view in response to the VE; and communicate achange value for the first operation log to the first computing devicein response to the first operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a first operation log to the second computingdevice, the first operation log comprising at least one first sequentialoperation defining operations to create a first document, and furthercomprising a data compression value; the second computing devicestructured to: create a first document view in response to the firstoperation log, the document view comprising content generated using atleast a portion of the first operation log;

provide the first document view to a display device; to receive a userdocument change input value, and to create a local operation log inresponse to the first operation log and the user document change inputvalue, the local operation log comprising at least one sequentialoperation defining operations to create a second document; update thefirst document view in response to the user document change input value;and communicate a change value for the first operation log to the firstcomputing device in response to the first operation log and the localoperation log.

The at least a portion of at least one of the operation log or the localoperation log may be compressed in response to the compression value.

The document server may be further structured to compress at least aportion of the operation log in response to the compression value.

The document server may be further structured to compress a data valueof the first document in response to the compression value.

The document server may further comprise at least one value selectedfrom the values consisting of: an instruction to compress at least aportion of the operation log; an instruction to compress a data type;and a compression protocol.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document server thedocument server further comprising a client resource circuit structuredto determine a client resource value corresponding to the secondcomputing device, the document server structured to communicate a firstoperation log to the second computing device in response to the clientresource value, wherein the first operation log comprises at least onefirst sequential operation defining operations to create a firstdocument; the second computing device structured to: create a firstdocument view in response to the first operation log, the document viewcomprising content generated using at least a portion of the firstoperation log; provide the first document view to a display device;receive a user document change input value, and to create a localoperation log in response to the first operation log and the userdocument change input value, the local operation log comprising at leastone sequential operation defining operations to create a seconddocument; update the first document view in response to the userdocument change input value; and communicate a change value for thefirst operation log to the first computing device in response to thefirst operation log and the local operation log.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to: interpret a user selection comprising at least one datavalue, wherein the document comprises the at least one data value, andwherein the at least one data value comprises at least one of areference or a link to an external source data; interpret a user tableselection value; and determine at least one of a table data update or atable configuration update in response to the user table selection valueand the user selection; and wherein the user display circuit is furtherstructured to update a second view in response to the user selection andfurther in response to the at least one of the table data update or thetable configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice; a document comprising an operation log, wherein the operationlog comprises at least one first sequential operation definingoperations to create data values of the document; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and a first client computing device of the at least oneclient computing device; wherein the at least one client computingdevice comprises a unified document surface application circuitstructured to: provide a first view to a user in response to the datavalues of the document; interpret a user formula value and a user tableselection value; determine at least one of a table data update or atable configuration update in response to the user table selection valueand the user formula value; and update a second view in response to theat least one of the table data update or the table configuration update;and a formula engine, wherein the formula engine is structured todetermine a calculation definition in response to the user formulavalue, the document object model, and the at least one of the table dataupdate or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a visualization tool (VT)circuit structured to determine a visualization element (VE) in responseto the data element, and further in response to at least one of: a uservisualization selection or a user context value; a data managementcircuit structured to interpret a user table selection value, and todetermine at least one of a table data update or a table configurationupdate in response to the user table selection value; and wherein theuser display circuit is further structured to update a second view inresponse to the VE and the at least one of the table data update or thetable configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a user interaction circuitstructured to interpret a table grouping input value associated with atleast one table, the table comprising a plurality of categories and aplurality of associated data sets corresponding to the plurality ofcategories; a table aggregation circuit structured to determine anaggregation value in response to the table grouping input value, whereinthe aggregation value corresponds to at least one of the plurality ofcategories; wherein the user interaction circuit is further structuredto provide an aggregated table view in response to the aggregationvalue; a data management circuit structured to interpret a user tableselection value, and to determine at least one of a table data update ora table configuration update in response to the user table selectionvalue and the aggregated table view; and wherein the user displaycircuit is further structured to update a second view in response to theat least one of the table data update or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to interpret a user table selection value and a user tableinput value, wherein the user table input value comprises a plurality oftable data values; wherein the data management circuit is furtherstructured to determine at least one of a table data update or a tableconfiguration update in response to the user table selection value; atable management circuit structured to determine a table organizationvalue in response to the user table selection value and the user tableinput value, wherein the table organization value comprises at least onevalue selected from the values consisting of: a column naming scheme; asorting scheme; a filtering scheme; an aggregation scheme; and aformatting scheme; and wherein the user display circuit is furtherstructured to update a second view in response to the table organizationvalue and further in response to at least one of the table data updateor the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to interpret a user table selection value and a userreference entry, to determine a reference return value in response tothe user reference entry, and to determine at least one of a table dataupdate or a table configuration update in response to the user tableselection value; and wherein the user display circuit is furtherstructured to update a second view in response to the reference returnvalue and further in response to at least one of the table data updateor the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of adocument and further comprising a first table object and a secondembedded table object; wherein each of the first table object and asecond embedded table object comprise a corresponding table specificname, and wherein each of the first table object and the second embeddedtable object comprise a corresponding parent object name, wherein afirst parent object name corresponding to the first table objectcomprises a distinct name from a second parent object name correspondingto the second embedded table object; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to interpret a user table selection value, wherein the usertable selection value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the user table selectionvalue comprises the first parent object name, wherein the datamanagement circuit is further structured to determine at least one of atable data update or a table configuration update in response to theuser table selection value; and wherein the user display circuit isfurther structured to update a second view in response to the at leastone of the table data update or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to interpret a user table selection value comprising aformula of the document, and to determine at least one of a table dataupdate or a table configuration update in response to the user tableselection value; and wherein the user display circuit is furtherstructured to update a second view in response to the at least one ofthe table data update or the table configuration update; a formulaengine, wherein the formula engine determines a calculation definitionin response to the formula of the document, and wherein the formulaengine is structured to generate an executable object in response to thecalculation definition, and wherein the executable object comprisesinstructions which, upon execution, cause at least one of the documentserver and the client computing device to perform operations in responseto the calculation definition; and wherein the document is positioned onat least one of the document server and the client computing device, andwherein the formula engine is further structured to interpret a userfocus location, and to direct execution of the executable object inresponse to the user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server comprising a document, wherein the document server is incommunication with a client computing device, and wherein the documentserver communicates a data element comprising at least a portion of thedocument to the client computing device; the client computing devicecomprising: a user display circuit structured to provide a first view toa user in response to the data element; a data management circuitstructured to: interpret a user table selection value, the user tableselection value comprising at least one source data value, wherein theat least one source data value comprises a data value selected from atleast one of: a database; a website; a network location; a seconddocument distinct from the document; data positioned on a cloud server;a portion of any of the foregoing; a local copy of any of the foregoing;and combinations of any of the foregoing; and determine at least one ofa table data update or a table configuration update in response to theuser table selection value; and wherein the user display circuit isfurther structured to update a second view in response to the at leastone of the table data update or the table configuration update.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document; and a document object model, whereinthe document object model comprises an object definition correspondingto each of a plurality of objects in the document; wherein the documentis at least partially positioned on at least one of the document serverand the client computing device; the client computing device comprising:a user interaction circuit structured to interpret a user external datareference value and a display location selection value comprising atleast one of the plurality of objects in the document; an external dataaccess circuit structured to access an external data source in responseto the user external data reference value; a data enrichment circuitstructured to performing a display enrichment operation in response tothe external data source and the display location selection value; and auser display circuit structured to provide an enriched display value inresponse to the display location selection value and the displayenrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document; and a document object model, whereinthe document object model comprises an object definition correspondingto each of a plurality of objects in the document; wherein the documentis at least partially positioned on at least one of the document serverand the client computing device; wherein the document object modelfurther comprises a report object definition comprising at least onevalue selected from the values consisting of: a report content value, areport location value, a report formatting value, and a report template;and wherein the calculation definition further comprises operations togenerate a report object in response to the report object definition.

An embodiment of the present disclosure includes a system, comprising: adocument server at least intermittently communicatively coupled to aclient computing device; a document comprising an operation log, whereinthe operation log comprises at least one first sequential operationdefining operations to create data values of the document; a formulaengine, wherein the formula engine determines a calculation definitionin response to at least one formula of the document, wherein thedocument server is further structured to interpret a user connectiondescription, and wherein the formula engine is further structured todirect execution of the executable object in response to the userconnection description; and a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe client computing device of the at least one client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document; a document object model, wherein thedocument object model comprises a visualization element (VE) objectdefinition; wherein the document is at least partially positioned on atleast one of the document server and the client computing device;wherein the client computing device comprises: a user interactioncircuit structured to interpret a user selection comprising at least onedata value, the document comprising the at least one data value of thedocument; a visualization tool (VT) circuit structured to determine a VEin response to the user selection, the VE object definition, and the atleast one formula of the document; and wherein the user interactioncircuit is further structured to create a data view in response to theVE.

The VT circuit may be further structured to determine the VE in responseto at least one of: a user visualization selection or a user contextvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device andat least one external data source; a document comprising an operationlog, wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document; aformula engine, wherein the formula engine determines a calculationdefinition in response to at least one formula of the document, whereinthe document server is further structured to interpret an access valuecorresponding to the external data source, and wherein the formulaengine is further structured to direct execution of the executableobject in response to the user focus location; a document object model,wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; andwherein the document is at least partially positioned on at least one ofthe document server and the client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document, wherein the client computing deviceis structured to interpret a user focus location, and wherein theformula engine is further structured to direct execution of theexecutable object in response to the user focus location; a documentobject model, wherein the document object model comprises an objectdefinition corresponding to each of a plurality of objects in thedocument; and wherein the document is at least partially positioned onat least one of the document server and the client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at least one client computingdevice and at least one workflow server; a document comprising anoperation log, wherein the operation log comprises at least one firstsequential operation defining operations to create data values of thedocument; a formula engine, wherein the formula engine determines acalculation definition in response to at least one formula of thedocument, wherein the document server is further structured to interpreta workload profile corresponding to the at least one workflow server,and wherein the formula engine is further structured to direct executionof the executable object in response to the user focus location; adocument object model, wherein the document object model comprises anobject definition corresponding to each of a plurality of objects in thedocument; and wherein the document is at least partially positioned onat least one of the document server and the client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to at a client computing device;a document comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document, wherein the document server isfurther structured to interpret a user location value, and wherein theformula engine is further structured to direct execution of theexecutable object in response to the user location value; and a documentobject model, wherein the document object model comprises an objectdefinition corresponding to each of a plurality of objects in thedocument; wherein the document is at least partially positioned on atleast one of the document server and the client computing device of theat least one client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device,the document server comprising a client resource circuit structured todetermine a client resource value; a document comprising an operationlog, wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document; aformula engine, wherein the formula engine determines a calculationdefinition in response to at least one formula of the document andfurther in response to the client resource value; a document objectmodel, wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; andwherein the document is at least partially positioned on at least one ofthe document server and the client computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; a document object model, whereinthe document object model comprises an object definition correspondingto each of a plurality of objects in the document; the client computingdevice comprising: a user interaction circuit structured to interpret auser selection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises a formula comprising at least one of a reference or alink to an external source data; a data management circuit structured tocreate a data view in response to the user selection; and a user displaycircuit structured to display at least a portion of the data view inresponse to the user selection; and a formula engine, wherein theformula engine is structured to determine a calculation definition inresponse to the user formula value and the document object model.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least of a user visualization selection or auser context value, wherein the document comprises at least one datavalue, and wherein the at least one data value comprises at least one ofa reference or a link to an external source data; a visualization tool(VT) circuit structured to determine a visualization element (VE) inresponse to the at least one data element, and further in response tothe at least one of the user visualization selection or the user contextvalue; a data management circuit structured to create a data view inresponse to the user selection; and a user display circuit structured todisplay at least a portion of the data view in response to the VE andthe at least one data element.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value and a table grouping inputvalue associated with at least one table, wherein the document comprisesthe at least one data value, wherein the at least one data valuecomprises at least one of a reference or a link to an external sourcedata, and wherein the table comprising a plurality of categories and aplurality of associated data sets corresponding to the plurality ofcategories; a table aggregation circuit structured to determine anaggregation value in response to the table grouping input value and theat least one data value, wherein the aggregation value corresponds to atleast one of the plurality of categories; and a data management circuitstructured to create a data view in response to the user selection; anda user display circuit structured to provide an aggregated table view inresponse to the aggregation value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret: a userselection comprising at least one data value comprising at least one ofa reference or a link to an external source data, and wherein thedocument comprises the at least one data value, and wherein the at leastone data value; and a user table input value, the user table input valuecomprising a plurality of table data values; a table management circuitstructured to determine a table organization value in response to the atleast one data value and the user selection, wherein the tableorganization value comprises at least one value selected from the valuesconsisting of: a column naming scheme; a sorting scheme; a filteringscheme; an aggregation scheme; and a formatting scheme; and a userdisplay circuit structured to provide a table view in response to thetable organization value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userreference entry and a user selection, the user selection comprising atleast one data value, wherein the document comprises the at least onedata value, and wherein the at least one data value comprises at leastone of a reference or a link to an external source data; a referencemanagement circuit structured to determine a reference return value inresponse to the user reference entry; and a user display circuitstructured to determine a document view in response to the referencereturn value and the user selection, and to provide the document view toa user.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object; thesecond computing device comprising: a user interaction circuitstructured to interpret a user selection comprising at least one datavalue, wherein the document comprises the at least one data value, andwherein the at least one data value comprises at least one of areference or a link to an external source data; wherein at least one ofthe first table object and the second embedded table object comprise atleast one of a reference or a link to the at least one data value; adata management circuit structured to create a data view in response tothe user selection; and a user display circuit structured to display atleast a portion of the data view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to create a data viewin response to the user selection; and a user display circuit structuredto display at least a portion of the data view in response to the userselection; and a formula engine, wherein the formula engine determines acalculation definition in response to at least one formula of thedocument, and wherein the formula engine is structured to generate anexecutable object in response to the calculation definition, and whereinthe executable object comprises instructions which, upon execution,cause at least one of the document server and the first client computingdevice to perform operations in response to the calculation definition;wherein the formula engine is further structured to interpret a userfocus location, and to direct execution of the executable object inresponse to the user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to create a data viewin response to the user selection; and a user display circuit structuredto display at least a portion of the data view in response to the userselection; and a formula engine, wherein the formula engine determines acalculation definition in response to at least one formula of thedocument, and wherein the formula engine is structured to generate anexecutable object in response to the calculation definition, and whereinthe executable object comprises instructions which, upon execution,cause at least one of the document server and the first client computingdevice to perform operations in response to the calculation definition;wherein the formula engine is further structured to interpret an accessvalue corresponding to the external source data, and to direct executionof the executable object in response to the access value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising; a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; wherein the external source data comprises at least onedata source selected from the data sources consisting of: a database; awebsite; a network location; a second document distinct from thedocument; data positioned on a cloud server; a portion of any of theforegoing; a local copy of any of the foregoing; and combinations of anyof the foregoing; a data management circuit structured to create a dataview in response to the user selection; and

a user display circuit structured to display at least a portion of thedata view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, wherein the document server isfurther structured to interpret a user connection description; theclient computing device comprising: a user interaction circuitstructured to interpret a user selection comprising at least one datavalue, wherein the document comprises the at least one data value, andwherein the at least one data value comprises at least one of areference or a link to an external source data; a data managementcircuit structured to store at least a portion of the external sourcedata in a datastore the user connection description, and to create adata view in response to at least one of the datastore and the userselection; and a user display circuit structured to display at least aportion of the data view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a visualization tool (VT) circuit structured to determine avisualization element (VE) in response to the at least one data valueand further in response to at least one of: a user visualizationselection or a user context value; a data management circuit structuredto create a data view in response to the VE and the at least one datavalue; and a user display circuit structured to display at least aportion of the data view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; a data management circuit structured to perform a datacleansing operation in response to the user selection, and to create adata view in response to at least one of the data cleansing operationand the user selection; and a user display circuit structured to displayat least a portion of the data view in response to the user selection.

The data management circuit may be further structured to store at leasta portion of the external source data in a datastore in response to thedata cleansing operation.

The data management circuit may be further structured to verify thedatastore in response to the user selection, and to provide data fromthe datastore in response to the user selection and the verifieddatastore.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data, wherein the user interaction circuit is further structuredto interpret a user focus location; a data management circuit structuredto perform a pre-fetch operation in response to the user selection andthe user focus location, and to store at least a portion of the externalsource data in a datastore in response pre-fetch operation; and a userdisplay circuit structured to display at least a portion of the documentin response to the user focus location.

The data management circuit may be further structured to predict asecond user focus location, and to perform the pre-fetch operationfurther in response to the second user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userselection comprising at least one data value, wherein the documentcomprises the at least one data value, and wherein the at least one datavalue comprises at least one of a reference or a link to an externalsource data; wherein the external source data comprises at least onedata object selected from the data objects consisting of a graph, achart, an image, a video file, an audio file, a media file, videocontent, audio content, and media content; a data management circuitstructured to create a data view in response to the user selection; anda user display circuit structured to display at least a portion of thedata view in response to the user selection.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe computing device; wherein the at least one client computing devicecomprises a formula engine, wherein the formula engine is structured todetermine a calculation definition in response to the user formula valueand the document object model; wherein the client computing devicecomprises; a unified document surface application circuit structured tointerpret a user formula value and to update the data values of thedocument in response to the user formula value; a user display circuitstructured to provide a first view in response to the updated datavalues of the document; a visualization tool (VT) circuit structured todetermine a visualization element (VE) in response to the updated datavalues of the document, and further in response to at least one of: auser visualization selection or a user context value; and wherein theuser display circuit is further structured to provide a second view inresponse to the VE and updated data values of the document.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe computing device; wherein the client computing device comprises aunified document surface application circuit structured to interpret auser formula value and to update the data values of the document inresponse to the user formula value; and a formula engine, wherein theformula engine is structured to determine a calculation definition inresponse to the user formula value and the document object model, andwherein the formula engine is further structured to interpret a userfocus location, and to direct execution of the executable object inresponse to the user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe client computing device; wherein the client computing devicecomprises: a unified document surface application circuit structured tointerpret a user formula value; and to update the data values of thedocument in response to the user formula value a user notification rulescircuit structured to interpret a user notification profile valuecomprising a notification trigger value and a notification responsevalue, wherein the notification response value comprises an action linkdefinition and a notification location value; a user notificationcircuit structured to determine whether an event trigger has occurred inresponse to the notification trigger value and update the data values ofthe document; and a user interaction circuit structured to provide anotification to a user in response to the event trigger and thenotification response value; and

a formula engine, wherein the formula engine is structured to determinea calculation definition in response to the user formula value and thedocument object model;

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe client computing device of the at least one client computing device;wherein the client computing device comprises a unified document surfaceapplication circuit structured to interpret a user formula value and toupdate the data values of the document in response to the user formulavalue and further in response to a metadata value, wherein the metadatavalue comprises at least one value selected from the values consistingof: a timestamp value, a tag value, and a user identifier value; and aformula engine, wherein the formula engine is structured to determine acalculation definition in response to the user formula value and thedocument object model.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document, wherein the data values of thedocument comprise at least one of a link or a reference to at least oneexternal source data, wherein the at least one external source datacomprises at least one data source selected from the data sourcesconsisting of: a database; a website; a network location; a seconddocument distinct from the document; data positioned on a cloud server;a portion of any of the foregoing; a local copy of any of the foregoing;and combinations of any of the foregoing; a document object model,wherein the document object model comprises an object definitioncorresponding to each of a plurality of objects in the document; whereinthe document is at least partially positioned on at least one of thedocument server and the client computing device; wherein the clientcomputing device comprises a unified document surface applicationcircuit structured to interpret a user formula value and to update thedata values of the document in response to the user formula value; and

a formula engine, wherein the formula engine is structured to determinea calculation definition in response to the user formula value and thedocument object model.

An embodiment of the present disclosure includes a system, comprising: adocument server at least intermittently communicatively coupled to aclient computing device; a document comprising an operation log, whereinthe operation log comprises at least one first sequential operationdefining operations to create data values of the document; a documentobject model, wherein the document object model comprises an objectdefinition corresponding to each of a plurality of objects in thedocument; wherein the document is at least partially positioned on atleast one of the document server and the computing device; wherein theclient computing device comprises a unified document surface applicationcircuit structured to interpret a user formula value and to update thedata values of the document in response to the user formula value; and

a formula engine, wherein the formula engine is structured to determinea calculation definition in response to the user formula value and thedocument object model, wherein the document server is further structuredto interpret a user connection description, and wherein the formulaengine is further structured to direct execution of the executableobject in response to the user connection description.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe client computing device; wherein the client computing devicecomprises a unified document surface application circuit structured tointerpret a user formula value and to update the data values of thedocument in response to the user formula value; the client computingdevice comprising: a user interaction circuit structured to interpret auser selection comprising at least one of the data values of thedocument; a visualization tool (VT) circuit structured to determine avisualization element (VE) in response to the at least one of the datavalues of the document and further in response to at least one of: auser visualization selection or a user context value; a data managementcircuit structured to create a data view in response to the VE and theat least one of the data values of the document; and a user displaycircuit structured to display at least a portion of the data view inresponse to the user selection; and a formula engine, wherein theformula engine is structured to determine a calculation definition inresponse to the user formula value and the document object model.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server theclient computing device; wherein the client computing device comprises aunified document surface application circuit structured to interpret auser formula value and to update the data values of the document inresponse to the user formula value; and a formula engine, wherein theformula engine is structured to: determine a calculation definition inresponse to the user formula value and the document object model;generate an executable object in response to the calculation definition,wherein the executable object comprises instructions which, uponexecution, cause at least one of the document server and the firstclient computing device to perform operations in response to thecalculation definition; interpret a compression value; and directexecution of the executable object in response to the compression value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe computing device; wherein the client computing device comprises aunified document surface application circuit structured to interpret auser formula value and to update the data values of the document inresponse to the user formula value; and a formula engine, wherein theformula engine is structured to determine a calculation definition inresponse to the user formula value and the document object model,wherein the client computing device is further structured to interpret auser focus location, and wherein the formula engine is furtherstructured to direct execution of the executable object in response tothe user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a document object model, wherein thedocument object model comprises an object definition corresponding toeach of a plurality of objects in the document; wherein the document isat least partially positioned on at least one of the document server andthe client computing device; wherein the at least one client computingdevice comprises a unified document surface application circuitstructured to interpret a user formula value and to update the datavalues of the document in response to the user formula value; and

a formula engine, wherein the formula engine is structured to determinea calculation definition

in response to the user formula value and the document object model,wherein the document server is further structured to interpret a userlocation value, and wherein the formula engine is further structured todirect execution of the executable object in response to the userlocation value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device,the document server comprising a client resource circuit structured todetermine a client resource value; a document comprising an operationlog, wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document; adocument object model, wherein the document object model comprises anobject definition corresponding to each of a plurality of objects in thedocument; wherein the document is at least partially positioned on atleast one of the document server and the client computing device;wherein the client computing device comprises a unified document surfaceapplication circuit structured to interpret a user formula value and toupdate the data values of the document in response to the user formulavalue; and

a formula engine, wherein the formula engine is structured to determinea calculation definition in response to the user formula value, thedocument object model, and the client resource value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device,the document server comprising a client resource circuit structured todetermine a client resource value; a document comprising an operationlog, wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document; adocument object model, wherein the document object model comprises anobject definition corresponding to each of a plurality of objects in thedocument; wherein the document is at least partially positioned on atleast one of the document server and the client computing device;wherein the client computing device comprises a unified document surfaceapplication circuit structured to interpret a user formula value and toupdate the data values of the document in response to the user formulavalue; and

a formula engine, wherein the formula engine is structured to determinea calculation definition in response to the user formula value and thedocument object model, and wherein the formula engine is furtherstructured to direct execution of the executable object in response tothe client resource value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value, a display location selection value, and auser selection comprising at least one data value, wherein the documentcomprises the at least one data value; an external data access circuitstructured to access an external data source in response to the userexternal data reference value; a data enrichment circuit structured toperforming a display enrichment operation in response to the externaldata source, the display location selection value, and the at least onedata value; and a user display circuit structured to provide an enricheddisplay value in response to the display location selection value andthe display enrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user interactioncircuit structured to interpret a user external data reference value anda display location selection value; an external data access circuitstructured to access an external data source in response to the userexternal data reference value; a data enrichment circuit structured toperforming a display enrichment operation in response to the externaldata source, the data element, and the display location selection value;a visualization tool (VT) circuit structured to determine avisualization element (VE) in response to the display enrichmentoperation, and further in response to at least one of: a uservisualization selection or a user context value; and wherein the userdisplay circuit is further structured to provide a view in response tothe VE and the data element.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user interactioncircuit structured to interpret a table grouping input value associatedwith at least one table, the table comprising a plurality of categoriesand a plurality of associated data sets corresponding to the pluralityof categories; a table aggregation circuit structured to determine anaggregation value in response to the table grouping input value, whereinthe aggregation value corresponds to at least one of the plurality ofcategories; and a visualization tool (VT) circuit structured todetermine a visualization element (VE) in response to the aggregationvalue, and further in response to at least one of: a user visualizationselection or a user context value; and wherein the user display circuitis further structured to provide a second view in response to the VE andthe data element.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a unified documentapplication circuit structured to interpret a user table input value,the user table input value comprising a plurality of table data values;a table management circuit structured to determine a table organizationvalue in response to the table data values, wherein the tableorganization value comprises at least one value selected from the valuesconsisting of: a column naming scheme; a sorting scheme; a filteringscheme; an aggregation scheme; and a formatting scheme; a visualizationtool (VT) circuit structured to determine a visualization element (VE)in response to the table organization value, and further in response toat least one of: a user visualization selection or a user context value;and wherein the user display circuit is further structured to provide asecond view in response to the VE and the data element.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a datavalue, the data value comprising at least a portion of a document andfurther comprising a first table object and a second embedded tableobject; wherein each of the first table object and a second embeddedtable object comprise a corresponding table specific name, and whereineach of the first table object and the second embedded table objectcomprise a corresponding parent object name, wherein a first parentobject name corresponding to the first table object comprises a distinctname from a second parent object name corresponding to the secondembedded table object; and wherein the data value further comprises atable referencing value directed to the second embedded table object,wherein the table referencing value comprises a portion of a formulacomprising a corresponding parent object name that is distinct from thefirst parent object name, and wherein a parent hierarchy for the tablereferencing value comprises the first parent object name; the clientcomputing device, comprising: a unified document application circuitstructured to interpret a user table input value, the user table inputvalue comprising at least one of the first table object and the secondembedded table object; a visualization tool (VT) circuit structured todetermine a visualization element (VE) in response to the user tableinput value, and further in response to at least one of: a uservisualization selection or a user context value; and wherein the userdisplay circuit is further structured to provide a view in response tothe VE and the data value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user display circuitstructured to provide a first view in response to the data element, thefirst view comprising at least a portion of the data element; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data element, and further in response toat least one of: a user visualization selection or a user context value;and wherein the user display circuit is further structured to provide asecond view in response to the VE and the data element; a formulaengine, wherein the formula engine determines a calculation definitionin response to at least one formula of the document, and wherein theformula engine is structured to generate an executable object inresponse to the calculation definition, and wherein the executableobject comprises instructions which, upon execution, cause at least oneof the document server and the client computing device to performoperations in response to the calculation definition; and wherein thedocument is positioned on at least one of the document server and theclient computing device, and wherein the formula engine is furtherstructured to interpret a user focus location, and to direct executionof the executable object in response to the user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a unified documentsurface application circuit structured to interpret a user report value,the user report value comprising at least one value selected from thevalues consisting of: a report content value, a report location value, areport formatting value, and a report template; a visualization tool(VT) circuit structured to determine a visualization element (VE) inresponse to the user report value and the data element, and further inresponse to at least one of: a user visualization selection or a usercontext value; and wherein the user display circuit is furtherstructured to provide a second view in response to the VE and the dataelement.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement, the data element comprising at least one of a link or areference to at least one external source data, wherein the at least onexternal source data comprises at least one data source selected fromthe data sources consisting of: a database; a website; a networklocation; a second document distinct from the document; data positionedon a cloud server; a portion of any of the foregoing; a local copy ofany of the foregoing; and combinations of any of the foregoing; theclient computing device, comprising: a user display circuit structuredto provide a first view in response to the data element, the first viewcomprising at least a portion of the data element; a visualization tool(VT) circuit structured to determine a visualization element (VE) inresponse to the data element, and further in response to at least oneof: a user visualization selection or a user context value; and whereinthe user display circuit is further structured to provide a second viewin response to the VE and the data element.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising: a user display circuitstructured to provide a first view in response to the data element, thefirst view comprising at least a portion of the data element; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the data element, and further in response toat least one of: a user visualization selection or a user context value;and wherein the user display circuit is further structured to provide asecond view in response to the VE and the data element.

The VE further may comprise a control associated with the VE, whereinthe control further comprises at least one control selected from thecontrols consisting of: a switch control; a multi-state switch control;a multi-picker control; an option list picker control; a dropdown pickercontrol; a numeric slider control; a date slider control; a time slidercontrol; a map picker control; a text box control; a validated text boxcontrol; a structured text box control; a card layout control; a drawingshape control; a media visual control; a table renderer control; a chartcontrol; a numeric range slider control; date range picker control; anda shape set control.

The VT circuit may be further structured interpret a user control value,and to update the VE in response to the user control value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement; the client computing device, comprising:

a unified document surface application circuit structured to interpret auser location value;

a user display circuit structured to provide a first view in response tothe data element, the first view comprising at least a portion of thedata element; a visualization tool (VT) circuit structured to determinea visualization element (VE) in response to the data element and furtherin response to the user location value; and wherein the user displaycircuit is further structured to provide a second view in response tothe VE and the data element.

The VT circuit may be further structured to determine the VE further inresponse to one of a user visualization selection or a user contextvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, the document comprising a dataelement, and wherein the document server comprises a client resourcecircuit structured to determine a client resource value; the clientcomputing device comprising: a user display circuit structured toprovide a first view in response to the data element, the first viewcomprising at least a portion of the data element; a visualization tool(VT) circuit structured to determine a visualization element (VE) inresponse to the data element and the client resource value; an extracteddata generation circuit structured to create a data view in response tothe user selection and the target device resource value; and wherein theuser display circuit is further structured to provide a second view inresponse to the VE and the data element.

The VT circuit may be further structured to determine the VE further inresponse to at least one of: a user visualization selection or a usercontext value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user interaction circuit structured tointerpret a user reference entry; a reference management circuitstructured to determine a reference return value in response to the userreference entry; a user notification rules circuit structured tointerpret a user notification profile value comprising a notificationtrigger value, the reference return value, and a notification responsevalue; a data management circuit structured to interpret the data value;a user notification circuit structured to determine whether an eventtrigger has occurred in response to the notification trigger value andthe data value; and a user interaction circuit structured to provide anotification to a user in response to the event trigger and thenotification response value.

The data management circuit may be further structured to update the datavalue, and wherein the user notification circuit is further structuredto determine whether the event trigger has occurred in response to theupdated data value.

The updated data value may comprise a value corresponding to thereference return value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value; a datamanagement circuit structured to interpret the data value, wherein thedata management circuit is further structured to perform a pre-fetchoperation of the data value in response to the user notificationprofile; a user notification circuit structured to determine whether anevent trigger has occurred in response to the notification trigger valueand the data value; and a user interaction circuit structured to providea notification to a user in response to the event trigger and thenotification response value.

The pre-fetch operation may comprise at least one of accessing anexternal data source and calculating a result value.

An embodiment of the present disclosure may further comprise a uniformdocument surface application circuit structured to interpret a userlocation value, and wherein the pre-fetch operation is further inresponse to the user location value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising:

a user notification rules circuit structured to interpret a usernotification profile value comprising a notification trigger value and anotification response value, wherein at least one of the usernotification profile value and the notification trigger value comprise avisualization element (VE); a data management circuit structured tointerpret the data value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the data value; and a user interactioncircuit structured to provide a notification to a user in response tothe event trigger and the notification response value.

The user notification rules circuit may be further structured tointerpret at least one of the user notification profile value and thenotification trigger value by interpreting a user control input.

The user notification rules circuit may be further structured tointerpret the notification trigger value by interpreting a user controlinput comprising a map picker control input.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a uniform document surface applicationcircuit structured to interpret a user location value; a usernotification rules circuit structured to interpret a user notificationprofile value comprising a notification trigger value and a notificationresponse value; a data management circuit structured to interpret thedata value; a user notification circuit structured to determine whetheran event trigger has occurred in response to the notification triggervalue and the data value; and a user interaction circuit structured toprovide a notification to a user in response to the event trigger, thenotification response value, and the user location value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a uniform document surface applicationcircuit structured to interpret a user location value; a usernotification rules circuit structured to interpret a user notificationprofile value comprising a notification trigger value and a notificationresponse value; a data management circuit structured to interpret thedata value; a user notification circuit structured to determine whetheran event trigger has occurred in response to the notification triggervalue, the data value, and the user location value; and a userinteraction circuit structured to provide a notification to a user inresponse to the event trigger and the notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a user interaction circuit structured to interpret auser external data reference value and a display location selectionvalue; an external data access circuit structured to access an externaldata source in response to the user external data reference value,wherein the external data access circuit is further structured toperform at least one of: pre-fetch external data in response to anactive communication link between the first computing device and atleast one of the document server and the external data source; and storeexternal data from the external data source in a local datastore; a dataenrichment circuit structured to perform a display enrichment operationin response to the external data source and the display locationselection value; a user display circuit structured to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation; a user display circuitstructured to determine a document view in response to the data value,and to provide the document view to a user; a unified document surfaceapplication circuit structured to interpret a first user inputcomprising an edit to the data value; and a document synchronizationcircuit structured to communicate the first user input to the firstcomputing device.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a user display circuit structured to determine adocument view in response to the data value, and to provide the documentview to a user; a unified document surface application circuitstructured to interpret a first user input comprising an edit to thedata value; and a document synchronization circuit structured tocommunicate the first user input to the first computing device, whereinthe document synchronization circuit is further structured to determinethat a communication link between the document server and the secondcomputing device is restored, and to communicate the first user input tothe first computing device in response to the restored communicationlink.

The unified document surface application circuit may be furtherstructured to request a local storage operation, wherein the localstorage operation further comprises at least one operation selectedfrom: storing at least a portion of the document on a datastore of thesecond computing device; storing at least a portion of the document on adatastore of a user selected device; storing an external data sourcevalue on a datastore of the second computing device; and storing anexternal data source value on a datastore of a user selected device.

The unified document surface application circuit may be furtherstructured to interpret a user-specific offline rule, and to apply theuser-specific offline rule to the document.

An embodiment of the present disclosure may further comprise a usernotification rules circuit structured to interpret a user notificationprofile value comprising a notification trigger value and a notificationresponse value; a user notification circuit structured to determinewhether an event trigger has occurred in response to the notificationtrigger value and the data value; and a user interaction circuitstructured to provide a notification to a user in response to the eventtrigger, the notification response value, and a notification locationvalue.

The notification location value may comprise a device identifier thatidentifies a device other than the second computing device.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value and acompression scheme, and the document server structured to communicate adata value to the second computing device in response to the clientresource value and the compression scheme, the data value comprising atleast a portion of a document; the second computing device comprising: auser display circuit structured to determine a document view in responseto the data value, and to provide the document view to a user; a unifieddocument surface application circuit structured to interpret a firstuser input comprising an edit to the data value; and a documentsynchronization circuit structured to communicate the first user inputto the first computing device.

The client resource circuit may be further structured to determine thecompression scheme in response to the client resource value.

The compression scheme may comprise at least one compression definitionvalue corresponding to each of a plurality of data type values.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value and auser location value, and the document server structured to communicate adata value to the second computing device in response to the clientresource value and the user location value, the data value comprising atleast a portion of a document; the second computing device comprising: auser display circuit structured to determine a document view in responseto the data value, and to provide the document view to a user; a unifieddocument surface application circuit structured to interpret a firstuser input comprising an edit to the data value; and a documentsynchronization circuit structured to communicate the first user inputto the first computing device.

The user display circuit may be further structured to determine thedocument view in response to the user location value.

The document synchronization circuit may be further structured tocommunicate the first user input to the first computing device inresponse to the user location value.

The unified document surface application circuit may be furtherstructured to interpret a user-specific offline rule, and to selectivelyapply the user-specific offline rule to the document in response to theuser location value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a user display circuit structured to determine adocument view in response to the data value and the client resourcevalue, and to provide the document view to a user; a unified documentsurface application circuit structured to interpret a first user inputcomprising an edit to the data value; and a document synchronizationcircuit structured to communicate the first user input to the firstcomputing device.

The document synchronization circuit may be structured to communicatethe first user input to the first computing device further in responseto the client resource value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document and further comprisingat least one data type selected from the data types consisting of: agraph, a chart, an image, an audio file, a video file, a media file;audio content; video content; and media content; the second computingdevice comprising: a user display circuit structured to determine adocument view in response to the data value and the data type of thedata value, and to provide the document view to a user; a unifieddocument surface application circuit structured to interpret a firstuser input comprising an edit to the data value; and a documentsynchronization circuit structured to communicate the first user inputto the first computing device.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value, a display location selection value, and atable grouping input value associated with at least one table, the tablecomprising a plurality of categories and a plurality of associated datasets corresponding to the plurality of categories; an external dataaccess circuit structured to access an external data source in responseto the user external data reference value; a table aggregation circuitstructured to determine an aggregation value in response to the tablegrouping input value, wherein the aggregation value corresponds to atleast one of the plurality of categories; a data enrichment circuitstructured to perform a display enrichment operation in response to theexternal data source, the display location selection value, and theaggregation value; and a user display circuit structured to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value, a display location selection value, and auser table input value, the user table input value comprising aplurality of table data values; an external data access circuitstructured to access an external data source in response to the userexternal data reference value; a table management circuit structured todetermine a table organization value in response to the table datavalues, wherein the table organization value comprises at least onevalue selected from the values consisting of: a column naming scheme; asorting scheme; a filtering scheme; an aggregation scheme; and aformatting scheme; a data enrichment circuit structured to perform adisplay enrichment operation in response to the external data source,the display location selection value, and the table organization value;and a user display circuit structured to provide an enriched displayvalue in response to the display location selection value and thedisplay enrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate a data value to a clientcomputing device, the data value comprising at least a portion of adocument and further comprising a first table object and a secondembedded table object; wherein each of the first table object and asecond embedded table object comprise a corresponding table specificname, and wherein each of the first table object and the second embeddedtable object comprise a corresponding parent object name, wherein afirst parent object name corresponding to the first table objectcomprises a distinct name from a second parent object name correspondingto the second embedded table object; and wherein the data value furthercomprises a table referencing value directed to the second embeddedtable object, wherein the table referencing value comprises a portion ofa formula comprising a corresponding parent object name that is distinctfrom the first parent object name, and wherein a parent hierarchy forthe table referencing value comprises the first parent object name; theclient computing device comprising: a user interaction circuitstructured to interpret a user external data reference value and adisplay location selection value; an external data access circuitstructured to access an external data source in response to the userexternal data reference value; a data enrichment circuit structured toperform a display enrichment operation in response to the external datasource, the display location selection value, and the table referencingvalue; and a user display circuit structured to provide an enricheddisplay value in response to the display location selection value andthe display enrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a dataenrichment circuit structured to perform a display enrichment operationin response to the external data source and the display locationselection value; a user display circuit structured to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation; and a formula engine,wherein the formula engine determines a calculation definition inresponse to at the enriched display value, and wherein the formulaengine is structured to generate an executable object in response to thecalculation definition, and wherein the executable object comprisesinstructions which, upon execution, cause at least one of the documentserver and the first client computing device to determine the enricheddisplay value.

The formula engine may be further structured to interpret a user focuslocation, and to direct execution of the executable object in responseto the user focus location.

The formula engine may be further structured to predict a second userfocus location, and to direct execution of the executable object todetermine the enriched display value in response to a proximity betweenthe predicted second user focus location and the display locationselection value.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a uniformdocument surface application circuit structured to determine a metadatavalue, wherein the metadata value comprises at least one value selectedfrom the values consisting of: a timestamp value, a tag value, and auser identifier value; a data enrichment circuit structured to perform adisplay enrichment operation in response to the external data source,the display location selection value, and the metadata value; and a userdisplay circuit structured to provide an enriched display value inresponse to the display location selection value and the displayenrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device, wherein the document server isfurther structured to interpret a user connection description; theclient computing device comprising: a user interaction circuitstructured to interpret a user external data reference value and adisplay location selection value; an external data access circuitstructured to access an external data source in response to the userexternal data reference value; a data enrichment circuit structured toperform a display enrichment operation in response to the external datasource and the display location selection value, wherein the dataenrichment circuit is further structured to delay performing the displayenrichment operation in response to the user connection descriptionindicating that a connection between the document server and the clientcomputing device is not active; and a user display circuit structured toprovide an enriched display value in response to the display locationselection value and the display enrichment operation.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising; a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; avisualization tool (VT) circuit structured to determine a visualizationelement (VE) in response to the user external data reference value and adisplay location selection value, and further in response to at leastone of: a user visualization selection or a user context value;

a data enrichment circuit structured to perform a display enrichmentoperation in response to the VE; and a user display circuit structuredto provide an enriched display value in response to the display locationselection value and the display enrichment operation.

The VT circuit may be further structured to determine a plurality ofVEs, each VE corresponding to one of a plurality of rows in a column ofa table, and wherein the data enrichment circuit is further structuredto performing a display enrichment operation by determining displayparameters within the plurality of rows corresponding to the pluralityof VEs.

The user display circuit may be structured provide the enriched displayvalue by depicting the corresponding VEs in the corresponding rows ofthe table, and further in response to a user position in the document.

The plurality of VEs may comprise at least one data object selected fromthe objects consisting of: a graph, a chart, an image, a video file, amedia file, video content, and media content.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a dataenrichment circuit structured to perform a display enrichment operationin response to the external data source and the display locationselection value; and a user display circuit structured to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation; and wherein the documentserver is further structured to determine a calculation time of theenriched display value on the client computing device, and in responseto the calculation time exceeding a threshold value, further perform oneof pre-calculating the enriched display value and commanding a workflowserver to pre-calculate the enriched display value.

The enriched display value may comprise a plurality of visualizationelements (VEs), each VE corresponding to one of a plurality of rows in acolumn of a table.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value; a dataenrichment circuit structured to perform a display enrichment operationin response to the external data source and the display locationselection value; and a user display circuit structured to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation; and wherein the documentserver is further structured to determine an external data access timeof the external data source in response to the user external datareference value, and to perform a pre-fetch of external data from theexternal data source in response to the external data access time theexceeding a threshold value, and to perform a pre-fetch of external datafrom the external data source in response to the exceeding a thresholdvalue.

An embodiment of the present disclosure includes a system, comprising: adocument server structured to communicate at least a portion of adocument to a client computing device; the client computing devicecomprising: a user interaction circuit structured to interpret a userexternal data reference value and a display location selection value; anexternal data access circuit structured to access an external datasource in response to the user external data reference value, whereinthe external data source comprises at least one data object selectedfrom the objects consisting of: a graph, a chart, an image, a videofile, an audio file, a media file, video content, audio content, andmedia content; a data enrichment circuit structured to perform a displayenrichment operation in response to the external data source and thedisplay location selection value; and a user display circuit structuredto provide an enriched display value in response to the display locationselection value and the display enrichment operation.

An embodiment of the present disclosure includes a system, comprising: aunified document application circuit structured to interpret a usertable input value, the user table input value comprising a plurality oftable data values for a table; a table management circuit structured todetermine a table organization value in response to the table datavalues, wherein the table organization value comprises at least onevalue selected from the values consisting of: a column naming scheme; asorting scheme; a filtering scheme; and a formatting scheme; a userinteraction circuit structured to interpret a table grouping input valueassociated with the table; a table aggregation circuit structured todetermine an aggregation value in response to the table grouping inputvalue, wherein the aggregation value corresponds to at least one of aplurality of categories of the table data values; and wherein the userinteraction circuit is further structured to provide an aggregated tableview in response to the aggregation value.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a user reference entry;a reference management circuit structured to determine a referencereturn value in response to the user reference entry; a user interactioncircuit further structured to interpret a table grouping input valueassociated with at least one table, the table comprising a plurality ofcategories and a plurality of associated data sets corresponding to theplurality of categories; a table aggregation circuit structured todetermine an aggregation value in response to the table grouping inputvalue and the reference return value, wherein the aggregation valuecorresponds to at least one of the plurality of categories; and

wherein the user interaction circuit is further structured to provide anaggregated table view in response to the aggregation value.

The table aggregation circuit performs an operation may be selected fromthe operations consisting of: filtering the table in response to thereference return value; sorting the table in response to the referencereturn value; determining the aggregation value in response one of theplurality of categories determined in response to the reference returnvalue.

At least one of the plurality of categories of the table may comprise anexternal data source, and wherein the table aggregation circuit isfurther structured to perform one of updating the aggregation value andapplying the aggregation value in response to a change in the externaldata source.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and wherein the second computing device comprises: a userinteraction circuit structured to interpret a table grouping input valuecomprising at least a portion of a formula comprising a table referencevalue for the second embedded table object including the second parentobject name that is distinct from the first parent object name, andwherein a parent hierarchy for the second parent object name comprisesthe first parent object name; a table aggregation circuit structured todetermine an aggregation value in response to the table grouping inputvalue, wherein the aggregation value corresponds to at least one of aplurality of categories of the at least one of the first table objectand the second table object; and wherein the user interaction circuit isfurther structured to provide an aggregated table view in response tothe aggregation value.

An embodiment of the present disclosure includes a system, comprising: aunified document application circuit structured to interpret a userentry value comprising at least one character; a user display circuitstructured to determine at least one candidate entry in response to theuser entry value; a user interaction circuit structured to interpret theat least one candidate entry as a table grouping input value associatedwith at least one table, the table comprising a plurality of categoriesand a plurality of associated data sets corresponding to the pluralityof categories; wherein the unified document surface application circuitis further structured to provide an autocompleted entry for the tablegrouping input value in response to a user selection of the at least onecandidate entry; a table aggregation circuit structured to determine anaggregation value in response to the table grouping input value, whereinthe aggregation value corresponds to at least one of the plurality ofcategories; and wherein the user interaction circuit is furtherstructured to provide an aggregated table view in response to theaggregation value.

The table grouping input value may comprise a parameter in a formula.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a table grouping inputvalue associated with at least one table, the table comprising aplurality of categories and a plurality of associated data setscorresponding to the plurality of categories; a table aggregationcircuit structured to determine an aggregation value in response to thetable grouping input value and a metadata value, wherein the metadatavalue comprises at least one value selected from the values consistingof: a timestamp value, a tag value, and a user identifier value, andwherein the aggregation value corresponds to at least one of theplurality of categories; and wherein the user interaction circuit isfurther structured to provide an aggregated table view in response tothe aggregation value.

An embodiment of the present disclosure includes a system, comprising: aunified document application circuit structured to interpret a userentry value comprising at least one character and a metadata value,wherein the metadata value comprises at least one value selected fromthe values consisting of: a timestamp value, a tag value, and a useridentifier value; a user display circuit structured to determine atleast one candidate entry in response to the user entry value; a userinteraction circuit structured to interpret the at least one candidateentry as a table grouping input value associated with at least onetable, the table comprising a plurality of categories and a plurality ofassociated data sets corresponding to the plurality of categories;wherein the unified document surface application circuit is furtherstructured to provide an autocompleted entry for the table groupinginput value in response to a user selection of the at least onecandidate entry; a table aggregation circuit structured to determine anaggregation value in response to the table grouping input value, whereinthe aggregation value corresponds to at least one of the plurality ofcategories; and wherein the user interaction circuit is furtherstructured to provide an aggregated table view in response to theaggregation value.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a table grouping inputvalue associated with at least one table, the table comprising aplurality of categories and a plurality of associated data setscorresponding to the plurality of categories; a unified document surfaceapplication circuit structured to determine a client resource value; atable aggregation circuit structured to determine an aggregation valuein response to the table grouping input value and the client resourcevalue, wherein the aggregation value corresponds to at least one of theplurality of categories; and wherein the user interaction circuit isfurther structured to provide an aggregated table view in response tothe aggregation value.

An embodiment of the present disclosure includes a system, comprising: auser interaction circuit structured to interpret a table grouping inputvalue associated with at least one table, the table comprising aplurality of categories and a plurality of associated data setscorresponding to the plurality of categories; a table aggregationcircuit structured to determine an aggregation value in response to thetable grouping input value, wherein the aggregation value corresponds toat least one of the plurality of categories; and wherein the userinteraction circuit is further structured to provide an aggregated tableview in response to the aggregation value, and wherein the aggregatedtable view further includes a plurality of rows of at least one columnof an aggregated table including at least one data object positionedtherein, the at least one data object selected from the objectsconsisting of: a graph, a chart, an image, a video file, an audio file,a media file, video content, audio content, and media content.

An embodiment of the present disclosure includes a system, comprising: acomputing device, comprising: a unified document application circuitstructured to interpret a user reference entry and a user table inputvalue, the user table input value comprising a plurality of table datavalues for a table; a table management circuit structured to determine atable organization value in response to the table data values and thereference return value, wherein the table organization value comprisesat least one value selected from the values consisting of: a columnnaming scheme; a sorting scheme; a filtering scheme; an aggregationscheme; and a formatting scheme; and a user display circuit structuredto provide a table view in response to the table organization value.

The reference return value may comprise a parameter in a formula.

The reference return value may comprise an object in a document, andwherein the table management circuit is further structured to determinethe table organization value by inheriting a property from the object ina document to the table.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and the second computing device comprising: a unified documentapplication circuit structured to interpret a user table input value anda table referencing value, the user table input value comprising aplurality of table data values, and the table referencing valuecomprising the second parent object name, and wherein a parent hierarchyfor the table referencing value comprises the first parent object name;a table management circuit structured to determine a table organizationvalue in response to the table data values, wherein the tableorganization value comprises at least one value selected from the valuesconsisting of: a column naming scheme; a sorting scheme; a filteringscheme; an aggregation scheme; and a formatting scheme; and a userdisplay circuit structured to provide a table view in response to thetable organization value.

The user table input values may comprise linked values of the firsttable object, wherein the table management circuit is further structuredto determine the table organization value in response to at least oneof: a drag operation or a copy operation of the first table object,thereby creating the second embedded table object having the linkedvalues of the first table object.

The second embedded table object may be positioned on a same parentobject as the first table object at a first time, wherein the secondembedded table object is moved to a distinct parent object from thefirst table object at a second time, and wherein a referential formulaassociated with the second embedded table object continues to referenceone of: the first table object or the parent object of the first table,after the movement to the distinct parent object.

An embodiment of the present disclosure includes a system, comprising: acomputing device, comprising: a unified document application circuitstructured to interpret a user entry value comprising at least onecharacter; a user display circuit structured to determine at least onecandidate entry in response to the user entry value; wherein the unifieddocument surface application circuit is further structured to interpreta user table input value, the user table input value comprising one of:a user selection of the at least one candidate entry or a plurality oftable data values entered by a user; a table management circuitstructured to determine a table organization value in response to theuser table input value, wherein the table organization value comprisesat least one value selected from the values consisting of: a columnnaming scheme; a sorting scheme; a filtering scheme; an aggregationscheme; and a formatting scheme; and a user display circuit structuredto provide a table view in response to the table organization value.

The unified document surface application circuit may be furtherstructured to provide the user table input value as an autocompletedentry in response to the user selection of the at least one candidateentry.

An embodiment of the present disclosure includes a system, comprising: acomputing device, comprising: a unified document application circuitstructured to interpret a user table input value, the user table inputvalue comprising a plurality of table data values; a table managementcircuit structured to determine a table organization value in responseto the table data values and further in response to a metadata value,wherein the metadata value comprises at least one value selected fromthe values consisting of: a timestamp value, a tag value, and a useridentifier value; and wherein the table organization value comprises atleast one value selected from the values consisting of: a column namingscheme, a sorting scheme, a filtering scheme, an aggregation scheme, anda formatting scheme; and a user display circuit structured to provide atable view in response to the table organization value.M8: BB 14

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user interaction circuit structured tointerpret a user reference entry; a reference management circuitstructured to determine a reference return value in response to the userreference entry; a user display circuit structured to determine adocument view in response to the reference return value, and to providethe document view to a user; and wherein the user reference entrycomprises an external data source, and wherein the document server isfurther structured to determine an external data access time of theexternal data source in response to the reference return value, and toperform a pre-fetch of external data from the external data source inresponse to the external data access time exceeding a threshold value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user interaction circuit structured tointerpret a user reference entry; a reference management circuitstructured to determine a reference return value in response to the userreference entry; a user display circuit structured to determine adocument view in response to the reference return value, and to providethe document view to a user; and wherein the document server is furtherstructured to determine a calculation time of the document view on theclient computing device, and in response to the calculation timeexceeding a threshold value, further perform one of pre-calculating thedocument view and commanding a workflow server to pre-calculate thedocument view.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and wherein the data value further comprises a table referencingvalue directed to the second embedded table object, wherein the tablereferencing value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the table referencingvalue comprises the first parent object name; wherein the documentcomprises: an operation log, wherein the operation log comprises atleast one first sequential operation defining operations to create datavalues of the document; a formula engine, wherein the formula enginedetermines a calculation definition in response to at least one formulaof the document, and wherein the formula engine is structured togenerate an executable object in response to the calculation definition,and wherein the executable object comprises instructions which, uponexecution, cause at least one of the document server and the secondcomputing device to perform operations in response to the calculationdefinition; and wherein the document is positioned on at least one ofthe document server and the second computing device, and wherein theformula engine is further structured to interpret a user focus location,and to direct execution of the executable object in response to the userfocus location.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document and furthercomprising a first table object and a second embedded table object;wherein each of the first table object and a second embedded tableobject comprise a corresponding table specific name, and wherein each ofthe first table object and the second embedded table object comprise acorresponding parent object name, wherein a first parent object namecorresponding to the first table object comprises a distinct name from asecond parent object name corresponding to the second embedded tableobject; and wherein the data value further comprises a table referencingvalue directed to the second embedded table object, wherein the tablereferencing value comprises a portion of a formula comprising acorresponding parent object name that is distinct from the first parentobject name, and wherein a parent hierarchy for the table referencingvalue comprises the first parent object name, and wherein the data valuefurther comprises at least one data object selected from the dataobjects consisting of a graph, a chart, an image, a video file, an audiofile, a media file, video content, audio content, and media content.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; wherein the client computing devicecomprises: a visualization tool (VT) circuit structured to determine avisualization element (VE) in response to at least one of the datavalues, and further in response to at least one of: a user visualizationselection or a user context value; a data enrichment circuit structuredto perform a display enrichment operation in response to the VE; and auser display circuit structured to provide an enriched display value inresponse to the display location selection value and the displayenrichment operation; a formula engine, wherein the formula enginedetermines a calculation definition in response to at least one formulaof the document, and wherein the formula engine is structured togenerate an executable object in response to the calculation definition,and wherein the executable object comprises instructions which, uponexecution, cause at least one of the document server and the clientcomputing device to perform operations to calculate the enriched displayvalue in response to the calculation definition; and wherein thedocument is positioned on at least one of the document server and theclient computing device, and wherein the formula engine is furtherstructured to interpret a user focus location, and to direct executionof the executable object in response to the user focus location.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document, and wherein the formula engine isstructured to generate an executable object in response to thecalculation definition, and wherein the executable object comprisesinstructions which, upon execution, cause at least one of the documentserver and the client computing device to perform operations in responseto the calculation definition; and wherein the document is positioned onat least one of the document server and the client computing device, andwherein the formula engine is further structured to interpret a userfocus location in response to a user location value, and to directexecution of the executable object in response to the user focuslocation.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device; adocument comprising an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of the document; a formula engine, wherein theformula engine determines a calculation definition in response to atleast one formula of the document, and wherein the formula engine isstructured to generate an executable object in response to thecalculation definition, and wherein the executable object comprisesinstructions which, upon execution, cause at least one of the documentserver and the client computing device to perform operations in responseto the calculation definition; and wherein the document is positioned onat least one of the document server and the client computing device, andwherein the formula engine is further structured to interpret a userfocus location, and to direct execution of the executable object inresponse to the user focus location and further in response to a userlocation value.

An embodiment of the present disclosure includes a system, comprising: adocument server communicatively coupled to a client computing device,the document server structured to interpret a client resource valuecorresponding to the client computing device; a document comprising anoperation log, wherein the operation log comprises at least one firstsequential operation defining operations to create data values of thedocument; a formula engine, wherein the formula engine determines acalculation definition in response to at least one formula of thedocument, and wherein the formula engine is structured to generate anexecutable object in response to the calculation definition, and whereinthe executable object comprises instructions which, upon execution,cause at least one of the document server and the client computingdevice to perform operations in response to the calculation definition;wherein the document is positioned on at least one of the documentserver and the client computing device, and wherein the formula engineis further structured to direct execution of the executable object inresponse to the client resource value.

An embodiment of the present disclosure includes a system, comprising: acommunication layer structured to provide access between a computingdevice and an external network; the computing device, comprising: anaccess interface circuit structured to expose a plurality of applicationprogramming interface (API) objects to the communication layer; whereinthe plurality of API objects comprises a first API object configured to:interpret a table input value, the table input value comprising aplurality of table data values; determine a table organization value inresponse to the table data values, wherein the table organization valuecomprises at least one value selected from the values consisting of: acolumn naming scheme; a sorting scheme; a filtering scheme; anaggregation scheme; and a formatting scheme; determine a table view inresponse to the table organization value and a metadata value, whereinthe metadata value comprises at least one value selected from the valuesconsisting of: a timestamp value, a tag value, and a user identifiervalue; and wherein the access interface circuit is further structured toreceive the table input value over the communication layer, and toprovide the table view to the communication layer.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document, and whereindata value further comprises at least one data source selected from thedata sources consisting of: a database; a website; a network location; asecond document distinct from the document; data positioned on a cloudserver; a portion of any of the foregoing; a local copy of any of theforegoing; and combinations of any of the foregoing; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value, whereinthe notification response value comprises an action link definition anda notification location value; a data management circuit structured tointerpret the data value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the data value; and a user interactioncircuit structured to provide a notification to a user in response tothe event trigger and the notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value, whereinthe notification response value comprises an action link definition anda notification location value; a unified document surface applicationcircuit structured to determine a user notification availability inresponse to at least parameter selected from the parameters consistingof: the notification trigger value; the notification response value; anda user contextual information; wherein the unified document surfaceapplication circuit is further structured to adjust one of thenotification trigger value and the notification response value inresponse to the user notification availability; a data managementcircuit structured to interpret the data value; a user notificationcircuit structured to determine whether an event trigger has occurred inresponse to the data value and further in response to one of thenotification trigger value and the adjusted notification trigger value;and a user interaction circuit structured to provide a notification to auser in response to the event trigger and one of the notificationresponse value and the adjusted notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a uniform document surface applicationcircuit structured to interpret a user location value; a usernotification rules circuit structured to interpret a user notificationprofile value comprising a notification trigger value and a notificationresponse value, wherein the notification response value comprises anaction link definition and a plurality of notification location values,each of the notification location values corresponding to one of aplurality of user location values; a data management circuit structuredto interpret the data value; a user notification circuit structured todetermine whether an event trigger has occurred in response to thenotification trigger value and the data value; and a user interactioncircuit structured to provide a notification to a user in response tothe event trigger and the notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a user notification rules circuitstructured to interpret a user notification profile value comprising anotification trigger value and a notification response value, whereinthe notification response value comprises an action link definition anda notification location value; a unified document surface applicationcircuit structured to determine a user current device value, and toadjust the notification response value in response to the user currentdevice value; a data management circuit structured to interpret the datavalue; a user notification circuit structured to determine whether anevent trigger has occurred in response to the notification trigger valueand the data value; and a user interaction circuit structured to providea notification to a user in response to the event trigger and theadjusted notification response value.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value and auser location value, and the document server structured to communicate adata value to the second computing device in response to the clientresource value and the user location value, the data value comprising atleast a portion of a document; the second computing device comprising: aunified document application circuit structured to interpret a userentry value comprising at least one character; a user display circuitstructured to determine at least one candidate entry in response to theuser entry value; and wherein the unified document surface applicationcircuit is further structured to provide an autocompleted entry inresponse to a user selection of the at least one candidate entry.

An embodiment of the present disclosure includes a system, comprising: afirst computing device at least intermittently communicatively coupledto a second computing device; the first computing device comprising adocument server, the document server further comprising a clientresource circuit structured to determine a client resource value, andthe document server structured to communicate a data value to the secondcomputing device in response to the client resource value, the datavalue comprising at least a portion of a document; the second computingdevice comprising: a unified document application circuit structured tointerpret a user location value and a user entry value comprising atleast one character; a user display circuit structured to determine atleast one candidate entry in response to the user entry value and theuser location value; and wherein the unified document surfaceapplication circuit is further structured to provide an autocompletedentry in response to a user selection of the at least one candidateentry.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic depiction of a system for working with anoperation log.

FIG. 2 is a schematic flow diagram of a procedure for communicating achange value.

FIG. 3 is schematic flow diagram of a procedure for updating a changevalue.

FIG. 4 is a schematic flow diagram of a procedure for receiving anupdated change value.

FIG. 5 is a schematic flow diagram of a procedure for communicating achange value.

FIG. 6 is a schematic flow diagram of a procedure for providing asnapshot.

FIG. 7 is a schematic flow diagram of an alternate procedure forproviding a snapshot.

FIG. 8 is a schematic depiction of a system for providing a data view.

FIG. 9 is a schematic illustration of a data depiction.

FIG. 10 is a schematic flow diagram of a procedure for updating a sourcedata value.

FIG. 11 is a schematic depiction of a system for providing avisualization.

FIG. 12 is a schematic depiction of a visualization tool circuit.

FIG. 13 is a schematic depiction of another embodiment of avisualization tool circuit.

FIG. 14 is a schematic depiction of a system for providing avisualization.

FIG. 15 is a schematic depiction of another embodiment of a system forproviding a visualization.

FIG. 16 is a schematic depiction of another embodiment of avisualization tool circuit.

FIG. 17 is a schematic flow diagram of a procedure for providing a view.

FIG. 18 is a schematic flow diagram of another embodiment of a procedurefor providing a view.

FIG. 19 is a schematic flow diagram of another embodiment of a procedurefor providing a view.

FIG. 20 is a schematic flow diagram of another embodiment of a procedurefor providing a view.

FIG. 21 is a schematic data illustration.

FIG. 22 is a schematic data illustration.

FIG. 23 is a schematic data illustration.

FIG. 24 is schematic depiction of a system for providing a referencereturn.

FIG. 25 is schematic depiction of a system for providing an application.

FIG. 26 is schematic depiction of a system for providing a view.

FIG. 27 is a schematic data illustration.

FIG. 28 is a schematic data illustration.

FIG. 29 is a schematic data illustration.

FIG. 30 is a schematic data illustration.

FIG. 31 is a schematic depiction of a system for providing an aggregatedview.

FIG. 32 is a schematic flow diagram of a procedure for providing anaggregated view.

FIG. 33 is a schematic flow diagram of a procedure for providing anaggregation profile.

FIG. 34 is a schematic depiction of a system for providing anotification.

FIG. 35 is a schematic flow diagram of a procedure for providing anaction link.

FIG. 36 is a schematic flow diagram of a procedure for providing analert.

FIG. 37 is a schematic depiction of a system for providing a view.

FIG. 38 is a schematic flow diagram of a procedure for updating anoperation log.

FIG. 39 is a schematic depiction of a system for organizing a table.

FIG. 40 is a schematic flow diagram of a procedure for updating a table.

FIG. 41 is a schematic data illustration.

FIG. 42 is a schematic data illustration.

FIG. 43 is a schematic depiction of a system for accessing an externaldata source.

FIG. 44 is a schematic flow diagram of a procedure for updating a dataview.

FIG. 45 is a schematic flow diagram of a procedure for providing anexternal data source option.

FIG. 46 is a schematic depiction of a system for providing a referencereturn.

FIG. 47 is a schematic flow diagram of a procedure for updating areference parameter.

FIG. 48 is a schematic flow diagram of a procedure for determining areference return value.

FIG. 49 is a schematic depiction of a system for operating a unifieddocument surface application.

FIG. 50 is a schematic data illustration.

FIG. 51 is a schematic data illustration.

FIG. 52 is a schematic data illustration.

FIG. 53 is a schematic data illustration.

FIG. 54 is a schematic flow diagram of a procedure for relating linkedtables.

FIG. 55 is a schematic flow diagram of a procedure for performing acolumn-wise operation.

FIG. 56 is a schematic flow diagram of a procedure for providing anautocompleted entry.

FIG. 57 is a schematic depiction of a system for operating an API.

FIG. 58 is a schematic depiction of a system for providing an enricheddisplay.

FIG. 59 is a schematic flow diagram of a procedure for accessing anexternal data source.

FIG. 60 is a schematic flow diagram of a procedure for performing a datatransform.

FIG. 61 is a schematic flow diagram of a procedure for performing anenrichment operation.

FIG. 62 is a schematic depiction of a system for updating an operationlog.

FIG. 63 is a schematic depiction of a system for accessing environmentalvariables.

FIG. 64 is a schematic depiction of a system for updating an operationlog.

FIG. 65 is a schematic depiction of a system for operating a formulaengine.

FIG. 66 is a schematic depiction of a system for operating a formulaengine.

FIG. 67 is a schematic data illustration.

FIG. 68 is a schematic data illustration.

FIG. 69 is a schematic data illustration.

FIG. 70 is a schematic depiction of a system for accessing environmentalvariables.

FIG. 71 is a schematic data illustration.

FIG. 72 is a schematic data illustration.

FIG. 73 is a schematic data illustration.

FIG. 74 is a schematic data illustration.

FIG. 75 is a schematic data illustration.

FIG. 76 is a schematic data illustration.

FIG. 77 is a schematic data illustration.

FIG. 78 is a schematic data illustration.

FIG. 79 is a schematic data illustration.

FIG. 80 is a schematic data illustration.

FIG. 81 is a schematic data illustration.

FIG. 82 is a schematic depiction of a system for responding to a userdevice.

FIG. 83 is a schematic depiction of a system for operating a formulaengine.

FIG. 84 is a schematic data illustration.

FIG. 85 is a schematic data illustration.

FIG. 86 is a schematic flow diagram of a procedure for working withdata.

FIG. 87 is a schematic flow diagram of a procedure for working withdata.

FIG. 88 is a schematic flow diagram of a procedure for working withdata.

FIG. 89 is a schematic flow diagram of a procedure for working withdata.

FIG. 90 is a schematic flow diagram of a procedure for working withdata.

FIG. 91 is a schematic flow diagram of a procedure for working withdata.

FIG. 92 is a schematic flow diagram of a procedure for working withdata.

FIG. 93 is a schematic flow diagram of a procedure for working withdata.

FIG. 94 is a schematic flow diagram of a procedure for working withdata.

FIG. 95 is a schematic flow diagram of a procedure for working withdata.

FIG. 96 is a schematic flow diagram of a procedure for working withdata.

FIG. 97 is a schematic depiction of a system for accessing data.

FIG. 98 is a schematic flow diagram of a procedure for working withdata.

FIG. 99 is a schematic flow diagram of a procedure for working withdata.

FIG. 100 is an example depiction of reference models for table values.

FIG. 101 is a schematic data illustration.

FIG. 102 is a schematic data illustration.

FIG. 103 is a schematic data illustration.

FIG. 104 is a schematic data illustration.

FIG. 105 is a schematic data illustration.

FIG. 106 is a schematic data illustration.

FIG. 107 is a schematic data illustration.

FIG. 108 is a schematic data illustration

FIG. 109 is a schematic data illustration.

FIG. 110 is a schematic data illustration.

FIG. 111 is a schematic data illustration.

FIG. 112 is a schematic data illustration.

FIG. 113 is a schematic data illustration.

FIG. 114 is a schematic data illustration.

FIG. 115 is a schematic data illustration.

FIG. 116 is a schematic data illustration.

FIG. 117 is a schematic data illustration.

FIG. 118 is a schematic data illustration.

FIG. 119 is a schematic data illustration.

FIG. 120 is a schematic data illustration.

FIG. 121 is a schematic data illustration.

FIG. 122 is a schematic data illustration.

FIG. 123 is a schematic data illustration.

FIG. 124 is a schematic data illustration.

FIG. 125 is a schematic data illustration.

FIG. 126 is a schematic data illustration.

FIG. 127 is a schematic data illustration.

FIG. 128 is a schematic data illustration.

FIG. 129 is a schematic data illustration.

FIG. 130 is a schematic data illustration.

FIG. 131 is a schematic data illustration.

FIG. 132 is a schematic data illustration.

FIG. 133 is a schematic data illustration.

FIG. 134 is a schematic data illustration.

FIG. 135 is a schematic data illustration.

FIG. 136 is a schematic data illustration.

FIG. 137 is a schematic data illustration.

FIG. 138 is a schematic data illustration.

FIG. 139 is a schematic data illustration.

FIG. 140 is a schematic data illustration.

DETAILED DESCRIPTION

In certain embodiments, and without limitation to any other disclosureherein, document servers, computing devices, client computing devices,and/or workflow servers as utilized herein each include hardware, forexample the document server 1102 included a computer, server, or groupof computers and/or servers, with the client computing device 1104 on aseparate computer, server, or group of computers and/or servers.Additionally or alternatively, one or more hardware devices may includeaspects of more than one document server, computing device, clientcomputing device, and/or workflow servers, for example as separatelyexecutable instructions stored on one or more devices, and/or aslogically partitioned aspects of a set of executable instructions, withsome aspects comprising a part of one of the first document server,computing device, client computing device, and/or workflow servers, andsome aspects comprising a part of another of the computing devices.

Certain descriptions herein include an administrator, a documentadministrator, or similar terms. The term administrator, as used herein,should be understood broadly. An administrator is any entity having aspecified role with respect to the document, the document server, theclient device, and/or an organization associated with the document.Non-limiting examples of an administrator include a specified person, aspecific login or login type, a person having a specified role (inassociation to the document server; a client device; a computer systemassociated with the document server, document, and/or client device; thedocument; a project associated with the document; and/or a workflowassociated with the document), and/or an entity with any of thepreceding characteristics. In certain embodiments, an administrator is aperson creating the document, creating a new version of an existingdocument, a person in a position of authority, and/or a person specifiedto have the administrator role for a given project, period of time,project deliverable, or the like. In certain embodiments, a user may bean administrator for certain operations, document sections, or the like,and not an administrator for other operations, document sections, or thelike. In certain embodiments, and administrator is a “super-user.” Thedescribed examples of an administrator are non-limiting examples, andany operations or criteria to determine an administrator arecontemplated herein.

Certain operations herein are described as being based upon and/or inresponse to a context, a contextual determination, a contextualindication, and/or determined or interpreted contextually. All of theseand similar terms (“context parameters” in the present paragraph) shouldbe understood broadly. Context parameters include, without limitation, auser, a user title, a user role, a user location, user permissions forthe document, a time of day, an editing time for the user (e.g. timeaccessing the document, and/or time actively interacting with thedocument), whether the user created the document, whether the user is anadministrator, the current operations being performed by the user (e.g.providing input, selecting a value, responding to a prompt, dragging aselected object, inserting an object, deleting an object, etc.), thetime of day, a calendar date, relations of any of these to outsideparameters (e.g. an end-of-month, end-of-year, outside of normalbusiness hours, a change in regulatory jurisdiction due to location, orother determination), a data type being accessed by the user, an objecttype being accessed by the user, a time since the document has beensynchronized or updated, a client device capability (e.g. memory,processor power, operating system, communication bandwidth, and/orcurrently available resources for any of these), an output type (e.g.screen size, color capability, printer type, available storage, and/orweb page availability and configuration), a data source for one or moreaspects of the document or document portion currently accessed by theuser (e.g. size, age, and/or availability of linked or referenced data),a number and/or characteristics of users currently accessing thedocument, parameters from the document defined at creation or updated,rules for the document, default parameters for the document, a locationwithin the document being accessed by the user, a total size of thedocument, a size of the document portion accessed by the user, and/orrules associated with the document (e.g. selected by the user and/or anadministrator). As will be understood to one of skill in the art havingthe benefit of the disclosures herein, certain ones of the illustrativecontext parameters may be utilized for certain operations, and certainones of the illustrative context parameters may not be applicable forcertain operations. The illustrative context parameters arenon-limiting, and further do not limit any descriptions herein utilizingcontext parameters.

A document view as described herein should be understood broadly. Anexample document view may be a portion of the document being accessed bythe user. In certain embodiments, a document view includes informationderived from, calculated from, and/or processed for viewing by the user,and accordingly a document view in certain embodiments is based upon,but is not a part of the document and/or the data element. A dataelement as described herein, when referencing a portion of the document(for example, a portion of the document communicated from a documentserver to a client computing device), should be understood broadly. Adata element may be information derived from the document, a portion ofthe document, and/or all of the document. A data element may includedata aspects that are not a part of the document, but that areassociated with, linked by, and/or referenced by the document. Forexample, a data element may include aspects of source data that is notpresent within the document, but is passed from the document server tothe client computing device.

The present disclosure includes a number of descriptions including adocument. A document, as utilized herein, should be understood broadly.Without limitation to any other descriptions of a document herein, adocument includes a reference-able collection of data structured forpresentation, editing, reading, printing, sharing, and/or any other typeof access, input, and/or output by a user. A document may be present ina single location (e.g. on a document server) and accessible by one ormore users, either on a device including the document server, or on oneor more separate devices in communication with the document server.Additionally or alternatively, the document may be distributed acrossmultiple devices, for example with portions of the document stored inmultiple places. An example document includes data which is referencedor linked, and in certain embodiments the document includes thereferences or links to the data, and in certain additional or alternateembodiments the document includes all or a portion of the referencedand/or linked data.

Additionally or alternatively, during certain operations, for exampleand without limitation when a user is working with a document locallyand not in communication with the document server, portions of thedocument are present on the document server (e.g. the original documentin the state before the user disconnected from the document server), andportions of the document are present on the user device. In certainembodiments, the document includes the local copy of all or a portion ofthe document on the user device, and additionally includes the originalversion of the document on the document server at the time the userdisconnected from the document server. Additionally or alternatively,the document including the original version of the document on thedocument server is a first document, the local copy of all or a portionof the document on the user device is a second document, and uponre-synching the local copy of all or a portion of the document from theuser device to the document server, a third document is created (e.g.having updates from the user with conflicts resolved in some manner, forexample any manner described in the present disclosure).

The logical division of the document from the document server and thelocal copy of all or a portion of the document on the user device due todisconnection from the document server is described for convenience ofillustration, however the logical division may be due to any reason,such as a delay in synchronization to preserve computing resources, toprotect network bandwidth, to delay conflict resolution until the usercompletes selected edits, or for any other reason. Additionally, theexample provides a single user accessing the document, however anynumber of users may be accessing the document or a portion of thedocument. In certain embodiments, it is explicitly contemplated that thedocument includes the representative data on the document server and/orportions or all of linked and referenced data, and that the local copieson user devices include separate documents which may be synchronized atsome point in the future. In certain embodiments, it is explicitlycontemplated that the document includes the resulting representativedata on the document server and/or portions or all of linked andreferenced data, including updates that would be applied if one or moreof the user changes were applied (including all users, or one or moreselected users), and as adjusted by conflict resolution techniques.Accordingly, the document may exist in certain embodiments as a digitalobject which can be accessed directly, such as by a computer, and incertain embodiments the document may exist as a logical construction,with digital elements comprising portions of the document, and impliedelements that may or may not yet be reflected in the digital elementscomprising portions of the document. In certain embodiments, “document”may indicate a digital object for some purposes, and a logicalconstruction for other purposes. One of skill in the art, having thebenefit of the disclosure herein and information ordinarily availablefor a contemplated embodiment, can readily determine what iscontemplated by a document for a particular embodiment and/or purpose.Certain considerations for determining the constituency of a documentinclude, without limitation, the purpose and user rights of access forthe user to the document, the type of operations being performed on thedocument (such as, without limitation, initial provision of portions ofthe document to a user device; editing of portions of the document bythe user; communications of document edits or updates to the documentserver; operations to resolve conflicts of edits or updates betweenusers; the type of data in the document; the manner in which data isincluded in the document such as linking, referencing, accessing datasources, and/or permissions to accessed data sources; the primacy ofdevices and/or users in document permissions and operational prioritieswith regard to the document; the balancing of document calculationsbetween user devices and/or the document server; and/or the type ofoperations being performed by the user on the document such as editing,updating, deleting, reading, printing, and/or publishing portions or allof the document).

In embodiments of the present disclosure, users may have a single,unified document surface in which text, images, and tables may be added.Users may type text using, for example, a plus button on the toolbar, orsome other functionality. In certain embodiments, a user can insert textanywhere on the document surface, for example by selecting a location(e.g. with a mouse click, touch screen, insertion command), and/or mayinsert text via an object placed on the document surface, where theobject is configured to accept text. Example and non-limiting objectsconfigured to accept text include a text box, a document section, atable, a chart, a figure, a graph, and the like. In certain embodiments,the insertion of text may be appended/inserted to a previous objectconfigured to accept text and/or created as a new object configured toaccept text. In certain embodiments, the treatment of inserted text isin accordance with predetermined or selected responses. For example, aselected or predetermined a user selection value (e.g. the currentlyinserted text is part of the chart currently selected), a prompt todetermine the intention of the user, default rules for the document(such as created by the user, in a template, and/or by a documentadministrator and/or creator), and/or contextual determinations (e.g.how a user has previously selected text insertion rules, a documentsection, and/or behavior of previous users working with the same type ofdata and/or the same document section) are utilized to determine thetreatment of inserted text.

Users may also add types of objects (e.g., images, tables, linkedtables, formulas, etc.) directly into the unified document surface. Allprevious examples for inserting text into the document describedpreceding apply, without limitation, to the addition or editing of anyother type of object. In certain embodiments, the document includes theuser accessible surface that is agnostic to the type of object insertedinto or edited in the document. In embodiments, when creating adocument, the unified document surface may provide users with a flexibledocument environment that does not limit their potential uses of thatdocument in the future. For example, the unified document surface mayallow a user to add any of the objects (e.g., text, images, tables) tothe document. Users may be able to add customized visualizations (e.g.,graphs, charts), data from external sources (e.g., through a set ofAPIs). A presentation layer of the unified document surface may allowutilizing the information within the document and creating apresentation based at least in part on the information stored in theunified document surface.

In embodiments of the present disclosure, the unified document surface,as described herein, may be used to create documents that are not singlepurpose surfaces, as in the traditional document that is created bypreviously known word processing applications, spreadsheet applications,or a presentation applications. As an example, currently when a userlogs into Google Drive and chooses to create a Google Spreadsheet, thatuser is choosing a specific tool that can perform operations such asmaintain rows of data, run calculations, and so forth. But within atraditional spreadsheet such as this, there is not a text flow surface.Therefore it is not possible to write non-grid based text within theflow of the document. Similarly, when a user creates a Google Doc, theuser is choosing to create a text flow document where typing paragraphtext is the primary use for the surface, but other functionalities, suchas utilizing tables, external data and the like are limited or notavailable. For example, a user may be able to add very basic tables toorganize text, but unable to add a rich table/grid to that Doc and runspreadsheet calculations inside the Google Doc. The creation ofinter-linked tables and spreadsheet capabilities, for example, requiresextensive user coding, and is of a similar scope to creating afor-purpose application with a developer level expertise required by theuser to create even simple operational linking between text flows,spreadsheet capabilities, and database operations. The unified documentsurface of the present disclosure does not require that a user choose,upfront, a primary tool (e.g., spreadsheet, text surface, presentationsurface) when creating a document, but rather, any document with theunified document surface may make use of any of these primary tools, andwithin the flow of a single application without highly developed codingand expertise. For example, a document with a unified document surfacemay start as a text flow surface with multiple sections, but may evolve,at the user's direction, into a document running calculations that areintegrated across the document. Additionally, a first section of thedocument may include certain features, such as text flows, pictures, anddata links, while a second section of the same document includes textflows, spreadsheet capable tables, and seamlessly links and interactswith the first section of the document. In certain embodiments, the usercan readily access any document tools, including operations describedherein that are not previously known even in dedicated applications, inany section of the document without regard to opening the correctdocument application type or providing for extensive customized usercode to create a link.

In embodiments, a unified document surface may include a container modelof functionalities, including but not limited to a document havingsections, or “sheets,” that include, but are not limited to, a canvas,grid, and object. Sheets may be nested in that one sheet may contain asecond sheet, which may contain a third sheet, and so forth. The terms“sheet” and “section” of a unified document surface may be usedinterchangeably throughout the present disclosure. An example documentmay include one or more canvases, and an example canvas may include oneor more sheets. An object positioned on a sheet may be associated withthe sheet, the canvas, and/or the document. An object positioned onanother object may be associated with the object it is placed upon, witha sheet containing both objects, with a canvas, and/or with thedocument. In certain embodiments, the use of one or more than one of acanvas, sheet, grid, and/or object provided therein are utilized forclarity of description. Other logical groupings of objects arecontemplated herein, one or more layers of object hierarchy may not bepresent in a given document, and/or additional layers of objecthierarchy may be present in a given document. In certain embodiments,object hierarchy is associated with data scope—for example at the canvaslevel, in certain embodiments, associated variables may be global to thecanvas, where at the object level, associated variables may be local tothe object and/or global to embedded objects within the object.Additionally or alternatively, data scope may be global throughout thedocument, for example where data in a first object positioned on a firstsheet and a first canvas is accessible directly by another objectpositioned on a second sheet and a second canvas. In certainembodiments, data scope is configurable by a user selection, accordingto defaults, and/or according to documents rules which may be created ina document template, by the user, and/or by an administrator.

FIG. 109 depicts simplified examples of possible organizations ofcanvas, grid, and object within a unified document surface. The examplehierarchies of FIG. 109 are non-limiting illustrations.

In an example, as presented in FIG. 110, a document having a unifieddocument surface may include a canvas. Within a canvas a table may bepresented. The canvas may provide functionality for a user to enter flowtext or images, for example, and the tables allow the user to enternumeric data in a grid and perform calculations, all within the samedocument, without the user having to toggle between a separateapplications, such as a word processing file and a spreadsheet file.Sections and objects of a document having a unified document surface maybe named, and a section may inherit the name of an underlying namedobject for display and/or data access purposes, such as presenting thename in a tab for the user. Documents and objects may have as a defaulta naming convention that sequentially and/or contextually provides eachdocument and object a generic name (e.g., Table1, Table2) until a userspecifies a unique name.

Referring to FIG. 111, in an example embodiment, a document having aunified document surface may include two tables. Each table may residewithin its own unique canvas. Additionally or alternatively, each table(e.g., the “BugTable” and the “FeatureTable”) may be a top level objectof the document having a unique name. The unique name may in turn beused to make additional functionalities and operations name-unique tothat particular object as well. For example, a formula on the BugTablemay be “=FeatureTable.Effort.SUM( ),” and therefor resolve correctlyusing the appropriate table data. In another example, if each tableincluded a column for “Effort” data, each may resolve to the uniquelynamed object: “BugTable.Effort” or “FeatureTable.Effort.” In certainembodiments, an application operating the document interface to theuser, for example and without limitation a user interaction circuit 808(see the portion of the description referencing FIG. 8) automaticallyresolves object names for the user where ambiguity may otherwise bepresent. For example, where BugTable includes a reference name Table1and is present on a first canvas, and where FeatureTable also includes areference name Table1 and is present on a second canvas (forexample—permissible where the data references for BugTable andFeatureTable are locally scoped), an example user interaction circuit808 utilizes the BugTable or FeatureTable, respectively, when the useris operating in a document section of the first canvas or second canvasand references Table1. Additionally or alternatively, the userinteraction circuit 808 resolves to either the BugTable or FeatureTable,for example when the user is operating in a document section of a thirdcanvas. In certain embodiments, the resolution includes an operationsuch as: taking a nearest one of the BugTable or FeatureTable (e.g. bydocument section number, by distance within the document such as textcount, visible distance, etc.); taking a contextually indicated one ofthe BugTable or FeatureTable (e.g. a most-used table, a most recentlyaccessed table, a table having data types that match a user intention,and/or a table flagged by the user in a recent resolution operation,etc.). In certain embodiments, the user interaction circuit 808additionally or alternatively provides a user with a preview of theresolved table (e.g. allowing the user to confirm the correct insertionor access before completing an operation), and/or provides the user witha list of potential candidates (e.g. all tables within the document, adocument section, contextually indicated sections, and/or contextualequivalents) matching the reference name (e.g. Table 1), therebyallowing the user to conveniently reference the correct informationwithout having sophisticated knowledge of underlying data scopeinformation, and/or having to ensure detailed management of data scopingand object naming. A preview includes a view of the table or objectreferenced, a result of the current operation if the referenced objectis selected (e.g. the user is applying a SUM operation to a tablecolumn, and the preview includes one or more headers or value from thetable, and/or the SUM result if the table is selected). Additionally oralternatively, the user interaction circuit 808 begins operations topreview and/or list candidate references in response to a partial namewhich may not uniquely identify candidate members—for example a userentry of “*Ta” may pull up references within the document having none,one, or more, characters preceding a “Ta” in the reference name, such asBugTable and/or FeatureTable. In another example, a user entry of “Fe”may pull up the FeatureTable and a separate FebruarySales chart (notshown) elsewhere in the document. It can be seen that the exampleoperations provide for a convenient interaction for the user thatincludes an autocomplete function (e.g. where the user selects acandidate member, or makes an entry when only one candidate memberremains), but also provides additional functionality to provide userswith convenient information (e.g. a preview of the information, alocation of the referenced information, a result of the currentoperation if the candidate member is selected, etc.) to ensure that theproper reference is selected. All operations described in the examplesare illustrative, and are applicable to any type of object and operationin the document, without limitation.

Referencing FIG. 99, an example procedure 12000 includes an operation12002 to interpret a user input, for example a user input indicating atable reference value, and an operation 12004 to access a unifieddocument surface having at least two tables. The example procedure 12000further includes an operation 12012 to resolve a referenced table fromthe at least two tables in response to the table reference value, forexample to determine an intended referenced table by a user and/or toassist the user in conveniently and correctly referencing a table.Operations in the procedure 12000 are described in the context of a userreferencing a table, however operations may additionally oralternatively be directed to resolving a reference to any object,including objects of disparate types. For example, procedure 12000 mayresolve a user input to determine a referenced one of a number ofgraphs, charts, table columns, or any other object or data element,and/or to resolve between two objects of different types such as betweena table and a chart.

The example procedure 12000 includes an operation 12006 to provide theuser with an option list in response to the user input (such as a tablereference value). In the example using two or more tables, the optionlist includes at least one of the two or more tables, and the operation12012 to resolve the referenced table is in response to a selection ofthe user from the option list. For example, where a user enters “An” asa user input, the procedure 12000 includes the operation 12002 tointerpret the “An”, the operation 12004 to access the unified documentsurface, and an operation 12006 to provide an option list of returnsconsistent with the “An” entry by the user. An example includesreturning a table “Annual report” and a table “Annuity investmentoptions”, where such tables are present (e.g., in-line, linked, and/orreferenced) within the unified document surface. An example includesreturning a first one of two tables “Annual report”, for example whereone of the two tables is within a document section closely related tothe user position in the document within the unified document surfacehierarchy (e.g. within the same canvas, sheet, or the like). In certainembodiments, a table and/or other object is returned consistent with theuser input. Additionally or alternatively, a user indicates the type ofobject desired, and the operation 12012 to resolve the reference islimited to objects consistent with the user indication.

The example procedure 12000 further includes an operation 12008 toprovide the user with a preview of at least one member of the optionlist. For example, each member of the list may have a short previewpositioned by the option list member, such as an image corresponding toat least a portion of the at least one member (e.g., a thumbnail, a topsection, a first column, etc.); a title of the at least one member; acolumn heading from the at least one member; at least one data valuefrom the at least one member; and/or a result value corresponding to theat least one member. In certain embodiments, only a small number of theoption list members may have a preview (e.g., the top three, ones havinga high relevance, a number selected according to available displayspace, and/or a selected number). In certain embodiments, only a focusedmember of the options list (e.g., a value the user moves a selector ormouse cursor over, a value the user has tabbed to, etc.). In certainembodiments, a first, shorter preview, is provided for one or moremembers of the options list, and a larger or more complete preview isprovided for a small number of the option list members and/or forfocused members of the options list. In certain embodiments, a previewmay be a result value of the corresponding member, for example a resultof a current operation of the user that would be returned if thepreviewed member of the option list is selected (e.g., a formula resultwhere the user is referencing a table or object in a formula, where theformula result previewed is determined based on the previewed member ofthe option list).

An example procedure 12000 includes the user input as a charactersequence—for example the first character or characters entered after theuser begins the referencing, and the procedure 12000 further includes anoperation 12014 to determine whether additional user input is provided.Where additional user input is provided (operation 12014 result YES),the procedure 12000 further includes an operation 12016 to update theoption list, and returns to the operation 12008 to preview one or moremembers of the option list. Additionally or alternatively, for examplewhere previews of the option list are not provided, the procedure 12000returns to operation 12010 to await a user selection of the members ofthe option list in response to the operation 12016 to update the optionlist. In the manner described, it can be seen that the user can enter acharacter sequence, and the option list is updated as the user entersadditional characters. In certain embodiments, the option list is notpresent, and/or the option list is not updated while the user isentering a character sequence. Additionally or alternatively, an optionlist, previews, and/or updates of the option list or previews can beprovided responsive to user requests, specific user entries (e.g., a tabor carriage return), or the like. Additional user input may be, withoutlimitation, an addition, a deletion, a replacement, and/or an insertionto the current user input and/or character sequence.

In certain embodiments, the at least two tables each have a referencename value consistent with the table reference value, and the operation12012 to resolve the referenced table includes determining a first userrelated position in the unified document surface (e.g. a canvas, sheet,page, or other location), and finding a closest hierarchically relatedone of the at least two tables in response to the first user relatedposition (e.g. within the same canvas, sheet, page, and/or in a closestrelated canvas, sheet, page, etc.).

The terminology “hierarchically related,” as used herein, indicatesthat, moving through an object model of the unified document surface, anobject is within the same scope as the user location within the document(e.g., moving vertically up through the unified document surface, arelated object is located), and/or an object is horizontally related tothe user location (e.g., if no consistent object is found in a verticalmovement such as to the current canvas, a closest one of a number ofcanvasses having a consistent object is selected—where closest may be byobject count, object name, object recency, etc.).

An object that is consistent with the user input, and/or with acharacter sequence of the user input, includes, without limitation: anobject including the character sequence (e.g. within the objectreference name, within a heading of the object, and/or within a datavalue of the object); an object having an element that begins with thecharacter sequence; an object having an element that includes thecharacter sequence as a significant element (e.g., a user input “yearly”could return objects having “year” in a reference name, heading, datavalue, or the like); an object having an element with any of thepreceding based on alternatives for the user input or character sequence(e.g., to account for typographical errors; conceptual matches such astime, project names, locations, and common alternative references toconcepts; and/or objects having an expanded match set according to thecontext of the reference entry by the user such as dates, deliverables,data types, concepts in the headings of the portion of the document theuser is working in). The examples to describe an object being consistentwith the user input are non-limiting, and in certain embodiments anexact match of the user input with the object element or portionsthereof is utilized, and in certain embodiments a broader utilization ofconsistency is utilized. The determination of consistency between theobject element and the user input may be selectable, based on rules,and/or expanded upon user request such as if the user is not finding theintended object under a more stringent consistency schema.

An example embodiment includes at least two tables or objects having anidentical local reference name (e.g., “Table1”), where local referencename describes the specific reference name without regard to thehierarchical position of the object within the unified document surfaceobject model. It can be seen that the procedure 12000 provides forresolution between objects having an identical local reference name,including either direct resolution and/or providing the user with anoption list and context to resolve the reference conveniently and withconfidence that the correct information is selected. It can be seen thatthe procedure 12000 provides for resolution between objects sharing anumber of introductory characters in the local reference name (e.g.,“Table1” and “Table12”), including either direct resolution and/orproviding the user with an option list and context to resolve thereference, without requiring the user to enter the entire reference namecompletely and correctly.

In embodiments, the unified document surface may allow pagination.Referring to FIG. 112, examples of pagination are provided for slidesand spreadsheets. Pagination may be included, for example, to illustrateto the user segmented portions of the document for publishing, printing,and/or other output. In certain embodiments, pagination may be includedfor reference purposes (e.g. to provide an object reference for accessthrough formulas or other linking mechanisms, or to identify documentportions for communications that occur outside of the context of thedocument), for organizational purposes, and/or to apply conditionalformatting to selected portions of the document. Pagination may beinserted by user selection, according to rules, and/or according tocontextual assessments. In certain embodiments, pagination may beapplied to only certain flows of the document (e.g. presentation pages,text, figures set on a page, etc.). In certain embodiments, paginationis unique within a given document scope (e.g. within a canvas and/orwithin a sheet). Additionally or alternatively, pagination is uniquethroughout the document (e.g. a document cannot contain two “page 17”member), and/or pagination is not unique at all (e.g. two alternativeannual reports of pages 1-50 may be present in the same document,canvas, and/or sheet without any conflict). The use an implementation ofpagination is illustrative and non-limiting. Any other type of documentsegmentation and/or organization (e.g. sections, stories, flows, breaks,etc.) is similarly contemplated herein, and similarly illustrative andnon-limiting. Although the example FIG. 112 depicts a bounded canvas,additionally or alternatively a canvas may be unbounded, resizable, orthe like.

Referencing FIG. 113, an example depicts alternate views of a documentportion, such as a table (having 4 columns and two rows, in theexample), a text portion, and a figure (an empty box in the example ofFIG. 113). An example user interaction circuit 808 allows a user toseamlessly transition between sections (e.g. sheets) within a document,where each object may, for example, have unique material such as slides.Objects may be organized and presented to a user within the document astabs, slide sorters, tiled windows, or any other presentation format.The presentation to the user may be selectable, and/or may be based ondocument rules, contextual determinations, and/or the type ofinformation currently being viewed by the user. The depiction of FIG.113 showing separate types of content on separate sheets is forconvenient illustration, although a given document may include separatetypes of content on the same sheet, and/or may not have a sheetorganization at all.

In embodiments, the base surface of a document having a unified documentsurface may function like a word processing document, in a constrainedmodel, where text flows upon user entry from top to bottom, and fromleft to right. In another example, the base surface of a document havinga unified document surface may also function in a flexible,unconstrained manner, where the user may create objects or data in anysection or position of the document, and the entire document surface iswriteable (i.e., not limited to top-down, or left-right entry).

In an example, in the constrained model of the surface, the pages orslides may be set by the dimensions chosen by the user or a defaultsetting. Each canvas within a surface may have a header and/or footersection or margin which can be set for elements across many commoncanvases. A document may provide the “grid”. In the constrained model,the writing area may be fixed and writing in a location that departsfrom the top-down, left-right manner, may require special formatting orselections from the user. In the constrained model, the writing and/orobject placement area may have an updateable surface size in response touser operations that would otherwise exceed the surface boundaries. Inan example, an unconstrained surface may allow a user to write anywherewithin the surface. Even in an unconstrained surface, the document mayhave a defined surface size, set by the user, defaults, contextuallydetermined, or the like, and/or the document may have an infinite orupdateable surface size in response to user operations that wouldotherwise exceed the surface boundaries. A “print area” of the surfacemay be defined by a user or by a default setting, and/or may behighlighted or selectively highlighted for convenience of the user.Headers and/or footers may be applied to each print area. Snap-to-gridfeatures, alignment features, margins, and other user conveniences mayexist in the unconstrained model or in the constrained model.

In embodiments, a unified document surface may support multiple surfacetypes. For example, each surface type may be presented to a user in aselectable manner, such as a tab, a preview, an icon, or the like. Auser may select a tab to go to a given surface type of interest. In anexample, a document may include a base surface in which all othersurfaces and surface types reside. In another example, each of aplurality of surface types within a document may be independent and notshare a common base surface.

In embodiments, a unified document surface may be a collaborativeenvironment in which multiple parties are actively accessing, editing,adding to and otherwise using the collaborative unified documentsurface. Thus, multiple users can readily see updates, work together ondistinct or the same portions of the surface.

In certain embodiments, a document surface may exceed the viewableportion of a user output device (e.g. a display screen), at least at ascaling or zoom level that is convenient for the user. Referencing FIG.114, certain navigation options may be provided, for example by the userinteraction circuit 808, to provide for navigation of a surface on theuser device. In the example, a surface 9002 is depicted left, andseveral data views 822 (reference the description referencing FIG. 8)are depicted right. An example, “As Is” 9004, depicts a portion of thesurface directly on the device, which may be navigated by the user (e.g.by swiping the screen). Another example 9006 provides for improvedscrolling, for example by fixing boundaries for scrolling (e.g. theheader row is fixed and the user can swipe up and down the rows, and/orthe column view is fixed so extraneous horizontal swipes do not shiftcolumns), and/or the user can snap between columns—for example with adefinitive swipe (e.g. a swipe having greater than a thresholdhorizontal movement amount) and/or by unlocking the columns for movementbetween columns. Another example 9008 provides structured data views ofaspects of the surface (e.g. “cards”—reference the descriptionreferencing FIG. 9) may be placed in the data view 822 (reference thedescription referencing FIG. 8) for the user to provide summarized,important, and/or compacted information about the surface to the user.In certain embodiments, a “card” is associated with a row of the table,providing for a convenient view of the information configured for theuser's device. In certain embodiments, the user can edit data on the“card”, and the edited data is reflected in the table on the documentsurface. Another example 9010 allows the user to make a data selectionfrom a “card”, a bulleted list (e.g. of a column or row of the table—seethe left image of “2-Step New/Item Detail”), or other structured dataelement, and the user interaction circuit 808 “zooms” to a detailed view9012 or otherwise provides greater information about the row and/orcolumn selected (see the right image of “2-Step New/Item Detail”).Additionally or alternatively, the user interaction circuit 808 candetermine, by user selection, contextually, or otherwise, to provide theuser with a summarized view 9014 (see the right-most image) such asaggregated data, a pivot table, or the like. The examples in FIG. 114are depicted in the context of a surface having a table larger than theuser display screen. Additionally or alternatively, any type of surfaceand object on the surface can provide the user with convenient viewingand/or editing options such as depicted in FIG. 114, whether the surfaceor object is larger than the display screen or not. Example andnon-limiting objects include text flows (e.g. allowing the user to seeparagraphs, select terms for details, etc.), and/or charts or graphs(e.g. allowing the user to zoom on chart elements, access related data,get text or numeric descriptions of chart elements).

An example system (e.g., system 800 described in the portion referencingFIG. 8, or any system described throughout the present disclosure)provides viewing and/or editing options to a client device in an API,where the client device accesses the API. The utilization of an APIallows for support of multiple devices and device types by movingaspects of application operation into the API layer (e.g., to a documentserver and/or a second client device interfacing with the presently usedclient device by the user). Accordingly, the client device utilized bythe user is responsible for fewer processing operations to support theapplication, such as view rendering logic. An example system includes anapplication API that serves responses based on the current view (e.g.,the sort, filter, and/or other selections of the user accessing thedocument thereby limiting the content of the document that must berendered to provide full, consistent document access to the user; and/orthe specific portion of the document visible to the user), rather thanmaking multiple data API calls per asset type (e.g., account informationrequest; list of recent documents request, etc.). The movement ofapplication content into an application API (or other similarorganizations of processing content) is selectable, with certain typesof operations provided on the API layer, and other types of operationsleft on the client device. Further, the movement of application contentinto an application API may be selectable, and/or configured accordingto a client device type and/or client device resource availability.

Referencing FIG. 97, a system 10000 includes a first computing device10002 communicatively coupled to a second computing device 10004, wherethe first computing device 10002 includes a document server thatcommunicates a data value 10012 to the second computing device 10004,such as a client computer device 10004, where the data value 10012includes at least a portion of a document 10006, and/or includes links,references, and/or imported data from one or more source data 10030elements. The example second computing device 10004 includes a unifieddocument surface application circuit 10008 that interprets a first userinput 10010 including a text flow entry, and interprets a second userinput 10016 including an in-line data access entry and/or a table-basedcalculation entry. The example client computing device 10004 includes atext flow processing circuit 10010 that positions a text entry value10024 on a unified document surface 10026 in response to the first userinput 10010, and an enhanced data processing circuit 10022 that createsat least one data structure 10018 in response to the one of the in-linedata access entry and the table-based calculation entry, and positionsthe data structure 10018 on the unified document surface 10026.Accordingly, the system 10000 provides for a unified document surface10026 that is not a single purpose surface, and that has access to afull range of spreadsheet, calculation, database, and other tools withina single application.

In certain embodiments, the unified document surface application circuitfurther interprets a document location 10028 corresponding to the firstuser input 10010, and the text flow processing circuit 10020 furtherpositions the text entry value 10024 on the unified document surface10026 in response to the document location 10028. Additionally oralternatively, the unified document surface application circuit furtherinterprets a second document location 10030 corresponding to the seconduser input 10016, and the enhanced data processing circuit 10022 furtherpositions the data structure 10018 on the unified document surface 10026in response to the second document location 10016.

An example document location 10028 and second document location 10030are within a same section of the unified document surface 10026. Forexample, the text entry value 10024 and data structure 10018 may bepositioned on a same canvas, same page, same grid, same sheet, within adocument object (e.g., a table, graph, visualization element, etc.),within a same document section, or the like, without the user 814creating document breaks or sections to accommodate utilization ofdisparate object types within the unified document surface 10026. Incertain embodiments, one of the document location 11028 and the seconddocument location 10030 is included within the other of the documentlocation 10028 and the second document location 10030—for example wherethe document locations 10028, 10030 include one object embedded withinanother object. An example system 10000 includes the document location10028 being a constrained portion of the unified document surface 10026(e.g. operating on the constrained model) and the second documentlocation 10030 being an unconstrained portion of the unified documentsurface 10026.

An example unified document surface application circuit 10002 furtherinterprets a user view value 10032, and provides a document view 10036in response to the user view value 10032. An example user view value10032 includes a tab selection, a slide selection, and/or a tiledwindow. Additionally or alternatively, a user view value 10032 includesa user designation, a user authorization, a user device parameter, afilter value, a sorting value, a priority value, a document role value,a text view, a data view, a metadata view, a formula view, and apredetermined view selection. Accordingly, the client unified documentsurface application circuit 10008 can configure the view of the unifieddocument surface 10026 for the user in response to the user designation(e.g., a role, title, selection by the user, etc.) and/or authorizationof the user (e.g. hiding certain portions of the unified documentsurface 10026 based on the user designation). Additionally oralternatively, the user can determine how to sort, filter, and/orprioritize displayed information on the unified document surface 10026.Additionally or alternatively, the user can determine to view documentdata, metadata (e.g., tags, styles, editing history, time stamps, objectreference names, etc.), formulas as entered (e.g., as opposed toresults), the user can set up a view of the unified document surface10026 for later convenient access, and/or the user can select from apredetermined view or list of views (e.g., set up by an administrator,according to rules in a template, and/or default view selections).

An example unified document surface application circuit 10008 furtherinterprets a user device parameter 10034, and provides a document view10036 in response to the user device parameter 10034. Example andnon-limiting user device parameters 10034 include a user device screensize, a user device input type, a user device resource parameter (e.g.,memory of any type, processing capability, communication bandwidth,and/or availability of portions of these for operations with the unifieddocument surface 10026), and/or a user device communication value (e.g.,availability and/or capacity of a user device to communicate with theclient computing device 10004, with the document server 10002, and/orbetween the client computing device 10004 and the document server10002). Accordingly, the unified document surface application circuit10008 can configure the document view 10036 tailored to the user 814 andthe current hardware context of the user 814.

Referencing FIG. 98, a procedure 11000 includes an operation tointerpret a first user input including a text flow entry, and/or tointerpret a second user input including one of an in-line data accessentry and a table-based calculation entry. The procedure 11000 furtherincludes an operation 11006 to position a text entry value on a unifieddocument surface in response to the first user input, and an operation11008 to create a data structure in response to the one of the in-linedata access entry and the table-based calculation entry, and to positionthe data structure on the unified document surface.

The example procedure 11000 further includes an operation 11004 tointerpret a document location corresponding to the first user input,where the operation 11006 to position the text entry value on theunified document surface is in response to the document location. Theexample procedure 11000 further includes the operation 11004 tointerpret a second document location corresponding to the second userinput, where the operation 11008 to position the data structure on theunified document surface is in response to the second document location.

An example procedure 11000 further includes an operation 11010 tointerpret a user view value, and an operation 11012 to provide adocument view in response to the user view value. Additionally oralternatively, the operation 11012 includes an operation to interpret auser device parameter, and the operation 11012 includes providing adocument view in response to the user device parameter. An exampleoperation 11012 includes configuring the document view in response to atleast one of: a user device screen size, a user device input type, auser device resource parameter, or a user device communication value.

Referencing FIG. 24, a system 2400 is schematically depicted including adocument server 2402 that communicates at least a portion of a document2406 to a client computing device 2404. The document 2406 includes adata element 2408, which may include at least a portion of the document2406, source data 2410 (e.g. data linked or referenced in the document2406), and/or information derived from the document 2406 or source data2410. Source data 2410 may be in any location—the example system 2400includes source data 2410 within the document 2406, on the documentserver 2402 in a location separate from the document 2406, and/oroutside the document server 2402 (e.g. with a third party provider, on adatabase, and/or a website). In certain embodiments, the data element2408 is included within the document 2406 and does not include sourcedata 2410. In certain embodiments, the data element 2408 includes theentire document 2406. The example system 2400, and other depictionsthroughout the present disclosure, provide for non-limiting illustrativeexamples of data and data flows (e.g. with arrows depicting certaindirectional flow). The data and data flows depicted are provided forcertain example embodiments, but data flow may be in any direction, anddata may be present anywhere within the described systems and examples.Where a particular system element utilizes data, the data is accessibleto the system element, but may be located on a same device (e.g. theclient computing device 2404) and/or communicated to the system elementutilizing the data.

The example system 2400 further includes the client computing device2404 having a user display circuit 2412 that provides a document view2414 in response to the data element 2408, where the document view 2414includes at least a portion of the data element 2408. For example, thedocument view 2414 may be the portion of the document 2406 beingaccessed by the user 814. In certain embodiments, the document view 2414includes information derived from, calculated from, and/or processed forviewing by the user 814 (e.g. see the description referencing FIG. 9),and accordingly the document view 2414 in certain embodiments is basedupon, but is not a part of the document 2406 and/or the data element2408.

The example system 2400 further includes a reference management circuit2416 that interprets a user reference selection 2418, and determines areference return value 2420 in response to the user reference selection2418. Example and non-limiting user reference selections 2418 include aselection by the user 814 indicating that a reference look-up operationis requested, instructed, and/or contextually indicated to complete arelated request by the user 814. For example, the user 814 may select atool button, enter a specified character and/or character sequence,and/or perform a separate operation having a reference look-up operationincluded as a portion thereof. An example user reference selection 2418includes a user 814 selecting a tool bar button (e.g. “Reference . . .”), performing a utility action (e.g. selecting a value from a menu,performing a “right-click” operation, double-tapping or double-clicking,and/or any other selected sequence to provide a reference request and/ora menu of options including a reference request). An example userreference selection 2418 includes the user 814 entering a characterand/or sequence of characters, in certain embodiments in a selectedcontext, wherein the character and/or sequence of characters providesfor a reference request and/or a menu of options including a referencerequest. For example, a user 814 may enter an appropriate context, whichmay include entering the character(s) in any text field in the document2406, entering the character(s) in a formula field or other selectedfield in the document 2406, and/or opening or indicating initiation ofthe context such as with a tool bar button and/or utility operation. Anexample character that may be included in a user reference selection2418 includes utilizing an “@” symbol, for example an entry of “@Annu .. . ” as the user reference selection 2418 may be utilized by thereference management circuit 2416 to determine a reference return value2420 in response to the character sequence “Annu.” The use of the “@”character provides for a convenient character that is seldom used tostart a common word, however, any character or sequence of charactersmay be utilized herein without limitation. In certain embodiments, thereference return value 2420 may accept a precursor character, forexample and without limitation a single quote “‘”, where the presence ofthe precursor character indicates the user 814 intends the character orsequence of characters, ordinarily indicating a user reference selection2418, to be utilized as depicted—for example “‘@gmail.com” couldindicate, in certain embodiments, that “@gmail.com” is intended fordisplay, rather than activation of a reference look-up and consequentreturn of a reference return value 2420.

In certain embodiments, the reference management circuit 2416continuously updates the reference return value 2420 in response tosubsequent entries for the reference return value 2420, for examplereturning a first reference return value 2420 upon user 814 entry of“@A” and updating to a second reference return value 2420 as the user814 continues with entry of “@An”. In certain embodiments, the updatingof the reference return value 2420 may be periodic (e.g. every 200msec), upon request by the user 814, upon a determined ending to theentry of the user reference selection 2418 (e.g. entry of a spacecharacter “ ”), and/or dependent upon contextually indicated information(e.g. the capability of the client device 2404).

In certain embodiments, the reference management circuit 2416 determinesthe reference return value 2420 by determining information within thedocument 2406, the data element 2408, and/or within the source data 2410that is responsive to the user reference selection 2418. Example andnon-limiting responsive information includes: an object name value (e.g.a table, table column, table row, graph, chart, sheet, canvas, tag,metadata, and/or any element thereof); a result value (e.g. a summation,a total, and/or a sub-total) from an object (e.g. a chart value, a tablevalue, etc.) or a formula; and/or a significant word return (e.g. aname, a verb, and/or an unusual word determined by any means such as aunique sequence of characters, a frequency of occurrence in a language,a document (including potentially the document 2406), a database, atable, etc.); a term of art; an entity reference (e.g. Wal-Mart, Google,Apple, etc.). Additionally or alternatively, the reference return value2420 may include ancillary information, and/or options for ancillaryinformation based upon the responsive information. For example, where adocument 2406 includes a table having the name “John Smith” therein, anexample reference management circuit 2416 responds to a user referenceselection 2418 of “##John Sm” (where “##” in the example is aninitiating character sequence for a user reference selection 2418) witha table entry for John Smith from the document 2406 (e.g. as a tablereference value, a row display from the table, and/or a “card”displaying information about John Smith from the table), a selection ofLinkedIn profiles estimated to be the John Smith from the table, aselection of Facebook profiles estimated to be the John Smith from thetable, a portion of a text flow within the document 2406 having “JohnSmith” therein (e.g. a reference to the paragraph, sheet, page, etc.; apredetermined or selected number of words before and/or after; sentenceincluding “John Smith” from the text flow; and/or a grammaticallydetermined phrase including “John Smith” therein). The example is anon-limiting illustration.

In certain embodiments, the user display circuit 2412 determines, inresponse to the reference return value 2420, one or more of theresponsive information elements to provide in a reference return display2422 to the user 814, for example making them visible in the documentview 2414, such as in a preview and/or a list. In certain embodiments,the reference management circuit 2416 selects responsive informationmost likely to be relevant to the user 814, returns only a most relevantaspect of the reference return value 2420, and/or provides an indicationin the reference return value 2420 of the amount, sources, types, orother aspects of potentially responsive information that are availablebut not included in the reference return value 2420. For example, thereference management circuit 2416 may provide only the table informationfor John Smith, with an indication that LinkedIn has three (3)potentially relevant profiles, etc. The reference management circuit2416, in certain embodiments, utilizes contextual information todetermine the reference return value 2420 and/or to determine whetherand how to display any indications of potential additional responsiveinformation to the user 814. For example, if the user 814 is a humanresources representative, the reference management circuit 2416 mayprioritize certain responsive information (e.g. reviews, personnelinformation, profiles, etc.), where if the user 814 is an engineeringmanager, the reference management circuit 2416 may prioritize adifferent aspect of responsive information (e.g. projects associatedwith John Smith, performance data, etc.).

It can be seen that the reference management circuit 2416 can reach anydata within the scope of the document 1106, the document element 1108,and/or the source data 2410, to determine where responsive informationto the user reference selection 2418 is available. Additionally, thereference management circuit 2416 is not limited to the format or datatype of the user reference selection 2418, and is further capable toprovide the user 814 with information likely to be relevant, and toprovide the user 814 with an easy selection from among disparate datatypes and sources to immediately reference any aspect of the document1106, the document element 1108, and/or the source data 2410, withoutmemorizing intricate referencing techniques or intensive coding.Additionally, in response to the reference return display 2422, the user814 is able to select from a range of return options, such as an entire“card” inserted at the location in the document 2406, an element fromthe “card” (e.g. just an employee ID #), and similarly can select fromany object (e.g. a table, chart, text flow, graph, etc.) either theentire object, a selection from the object, and/or a range of valuesfrom the object. Accordingly, a user 814 can conveniently reach all ofthe information in the system 2400, which could include third-partydatabases, the internet, company documents, etc., and only needs toremember generally related information to the information the user 814is seeking. Further, in certain embodiments, the selected aspect of thereference return display 2422 can be brought in as linked information(e.g. it will be updated as the source information changes) and/or asflat data. The user 814 can leave the user reference selection 2418 inthe document 1106, and/or copy in the information from the userreference selection 2418 and remove the reference.

While data, text, and other fields explicitly related to the userreference selection 2418 have been described, a user reference selection2418 can also reach metadata, tags, semantic matches (e.g. “perro” canrelate to “dog”, and/or “sports” can relate to “football,” “baseball,”“basketball,” etc.), for example with the reference management circuit2416 utilizing contextual information to determine responsiveinformation. In certain embodiments, the reference management circuit2416 broadens the view of the user reference selection 2418 based uponthe amount of information returned (e.g. a low number of relevant“hits”) and/or narrows the view of the user reference selection 2418(e.g. a high number of relevant “hits”). In certain embodiments, thereference management circuit 2416 determines offset hits from the userreference selection 2418, for example interpreting “teh village” as arequest for “the village,” “John Smith” to include “Jack Smith,” and thelike. In certain embodiments, past user 814 behaviors, such as favoringtable returns or LinkedIn profiles when utilizing user referenceselections 2418, are utilized to determine responsive information and/orprioritize a list order for the reference return display 2422. Incertain embodiments, rules from a template document, provided by anadministrator, and/or provide by the user 814, are utilized to determineresponsive information and/or prioritize a list order for the referencereturn display 2422. An example user reference selection 2418 includes awebsite, URL, network location, and/or document name.

An example includes the user reference selection 2418 corresponding to arow in another table within the document 1106. One of the columns in ahost table may be selected to show when users reference the row,referenced in the example as the “Display Name” and editable by theuser. The default Display Name may be simply the first column in thetable. In the canvas or text flow surface, as described herein, usersmay type ‘@’ anywhere in the document surface (where “@” in the exampleis an initiating character sequence for a user reference selection2418), choose a value from their tables which then may display the valuethey selected. From a user perspective, this allows the user to nolonger have to copy and paste values around a document, and ensure theyfind all instances of the desired change. Continuing the example, atable may have a list of, for example, 100 tasks, and a user may bewriting meeting notes in a document during a meeting. For tasks with alot of detail and/or long titles, instead of copying the value from thetable and pasting the long value into the meeting notes, the user mayinstead type ‘@’ and select the appropriate task (e.g. “Refinemetrics”). Continuing the example, after the meeting the user may editthe task table to refine the title of the task to be clearer. Now,because the @Refine Metrics inherits the value from the table, theuser's meeting notes may be up to date, in real time, with the newlyrefined task titles. Additionally or alternatively, a user may set up anotification and/or project values from an reference and/or pointer—forexample such that another value is updated automatically, the user getsa notification that the referenced value has changed, or the like. Inthis way, the user doesn't have to go back and copy the new title fromthe table and paste it into the meeting notes (and ensure all instancesare updated). In another example, and as depicted in FIG. 115, the@[Englewood] reference, as described herein may be used to reference aspecific row in a document, including but not limited to a row of text,a row of code, a row of a text entry within a table cell, or some otherrow reference within a document.

In embodiments, for tables within documents, the user referenceselections 2418 may provide a tool to join data across tables. In anexample, a user may have two tables, one called Presidential Familiesand another called Families. The Presidential Families table may containthe first names and birthdays of all presidential family members(Barrack, George, Bill, etc.). The Families table may contain the lastnames and addresses of Presidential Families. By typing ‘@Obama’ intothe row containing ‘Barack’ in the Presidential Families table, thatparticular @Obama reference will resolve to ‘Obama’ and contain a linkto the Families table. The two tables may now be implicitly linked toeach other. Continuing the example, if the user wants to add theaddresses of each family to the Presidential Families table, the usermay add a column formula that uses the @Obama the user previouslycreated to point to another value in the Families table In anotherexample, typing the name of an object like “@computer” may allow a userto select from a list of computer types and their corresponding details,images and links to, for example, make a purchase.

Referencing FIG. 25, a system 2500 includes an application configurationcircuit 2502 that interprets a user noun selection 2506, a user verbselection 2508, and a user context selection 2510, and determines anapplication configuration value 2514 in response to the document 2406,data element 2408, and/or the source data 2410, and further in responseto the user noun selection 2506, user verb selection 2508, and/or theuser context selection 2510. The description of user 814 interactionswith the application configuration circuit 2502 as the user nounselection 2506, user verb selection 2508, and/or the user contextselection 2510 provides a convenient context for clarity of description.However, any user 814 inputs consistent with the description herein arecontemplated herein, and user 814 interactions with the applicationconfiguration circuit 2502 and/or the client computing device 2404 arelikewise contemplated herein.

The example user noun selection 2506 includes data from the data element2408, the document 2406, and/or the source data 2410 for inclusion in,and/or referencing and/or linking with, an application 2512 published bythe application publishing circuit 2504. In certain embodiments,included data from the user noun selection 2506 may be included aslinked data, flat data (e.g. data physically stored as applicationdata), referenced data, and/or values calculated from, determined from,and/or visualizations of (e.g. in accordance with any VE 1116—see thedescription referencing FIGS. 11-23) any such data. For example, a user814 may direct that a prose description from the document 2406 isutilized in the user noun selection 2506, and such prose description maybe utilized directly in the application 2512, a bulleted list from theprose description (e.g. as a VE 1116) may be utilized in the application2512, and/or information determined in response to the prose descriptionand/or a bulleted list may be utilized in the application 2512. Forexample, and without limitation, a prose description may include arepair sequence for a device (e.g. changing the alternator in a car),and the user 814 may indicate the prose description with the repairsequence in the user noun selection 2506. An example applicationconfiguration circuit 2502 includes determining a VE 1116 with a list ofparts for the repair, and information included in the application 2512includes a “card” with a list of parts and nearby stores (e.g.referenced in the source data 2410) based on the application user'slocation where the parts can be purchased. An example includes a “card”for each store, for example sorted by the lowest cost, least number ofstops required to get all of the parts, or other selected criteria bythe user 814 or the application user (not shown).

The example system 2500 further includes a user verb selection 2508. Inthe example, the user verb selection 2508 includes operations defined tobe available to the application 2512 and/or the application user. Forexample, the user verb selection 2508 may define which databases fromthe document 2406, the data element 2408, and/or the source data 2410should be utilized by the application 2512. Additionally oralternatively, the user verb selection 2508 defines access for theapplication user, such as read, write, and/or output access to dataavailable to the application 2512. In certain embodiments, data in theapplication 2512 may be linked to the data element 2408, the document2406, and/or the source data 2410, for example providing live updates(or selective updates) to data in the application 2512. Additionally oralternatively, the user verb selection 2508 may allow for updates to thedata to be written back from the application 2512—for example allowingthe application user to change certain data and send the updates back tothe data element 2408, the document 2406, and/or the source data 2410.An example includes a field sales document 2406, wherein the applicationuser enters sales data which is reflected in the document 2406 afterentry by the application user. In certain embodiments, the user 814provides the user noun selection 2506, and may further provide usercontext selection 2510 such as the target application user for theapplication 2512, and the application configuration circuit 2502suggests appropriate values for the user verb selection 2508 in responseto the user noun selection 2506 and/or the user context selection 2510.An example application configuration circuit 2502 provides a selectionof values for the user verb selection 2508 in response to rulesregarding the target application user, user verb selection 2508 valuesthat have been utilized by previous users 814, and/or values from atable in the document 2406 or elsewhere in the system 2500 definingsuggested user verb selections 2508 associated with various user contextselections 2510 and/or data associated with the user noun selection2506.

In certain embodiments, the user context selection 2510 includesinformation that is not within the document 2406, the data element 2608,and/or source data 2410, such as header information for the application,display screens, user agreements, and/or any other data that the user814 wants to make available in the application but is not present withinthe document 2406, the data element 2608, and/or source data 2410.Additionally or alternatively, the user context selection 2510 caninclude information about the application 2512 or application user thatthe user 814 wants considered during the operations of the application2512, such as but not limited to the location of the application user,the demographics of the application user, the jurisdiction where theapplication user is located, and the like. Additionally oralternatively, the user context selection 2510 can include informationsuch as the target operating systems and/or devices for the application2512 (e.g. Android, Apple OS, and/or Windows).

The example application configuration circuit 2502 determines anapplication configuration value 2514 in response to the document 2406,data element 2408, and/or the source data 2410, and further in responseto the user noun selection 2506, user verb selection 2508, and/or theuser context selection 2510. For example, the application configurationcircuit 2502 determines what programmatic elements (e.g. SQL and/orjavascript) need to be prepared to implement the application 2512, whichdata elements need to be included in the application data and/oravailable for access in real time, and further determines the responseof the application 2512 to anomalies—for example the response of theapplication 2512 to linked data fields where communication from a deviceoperating the application 2512 may not be available.

An example system 2500 includes an application publishing circuit 2504that publishes the application 2512 in response to the applicationconfiguration value 2514. An example application publishing circuit 2504prepares the application file for upload to the appropriate system (e.g.the Apple Store, to a proprietary server for in-house devices orapplications as a specific service, etc.). The application configurationcircuit 2502 prepares the application executing code, utilizing eitherpseudo-code operational descriptions generated by the applicationconfiguration circuit 2502 and/or incorporating actual code generated bythe application configuration circuit 2502. The applicationconfiguration circuit 2502 prepares the application 2512 for operationwith the target operating system(s), and uploads the application 2512for later download and use by a device operating the application 2512.

It can be seen that the system 2500 provides for a highly configurableapplication 2512 leveraging the data, visualization, and referencingcapabilities of various system disclosed herein working with a document2406, a data element 2408, and/or source data 2410. The system 2500provides for an application 2512 that can be easily configured to workwith a document 2406, and/or to provide a useful function to anapplication user leveraging easy access to the document 2406, the dataelement 2408, and/or the source data 2410. The user 814 can configurethe application 2512 to have live data available as the document 2406,data element 2408, and/or source data 2410 are updated, to require thatupdates require a new version of the application 2512, and/orcombinations of these for varying data elements of the user nounselection 2506. The highly capable and flexible application 2512 fromthe system 2500 does not require that a user 814 have a sophisticatedunderstanding of database interactions, and can readily work with aflexible document surface without regard to linking different documentapplication types to develop data interaction capabilities. Additionallyor alternatively, any controls, visualizations, continuous selections,and/or discrete selections (e.g. see the description referencing FIGS.11-23) described herein are readily incorporated, and/or modified forinclusion, into an application 2512. In certain embodiments, a targetapplication user may include the user 814, and/or other persons directlyinteracting with the document 2406 through a client computing device2404, to readily create a thin client application to provide for remote,controlled, or easy access to the document 2406 and/or selected portionsof the document 2406 for editing, reading, publishing, keeping updatedon changes to the selected portions, and the like.

An example application 2512 includes a user verb selection 2508 thatallows the application user to publish the document 2406 and/or portionsthereof as a web page. In certain embodiments, the application 2512allows the application user to create, request, or receive a permanentURL for the web page. In certain embodiments, a document 2406 and/orportions thereof are published directly to a web page without the use ofan application 2512. In certain embodiments, the selected portions ofthe document 2406 are visible in the application 2512 and/or on the webpage, without the editing or interacting features of systems in thepresent disclosure, and without seeing the construction elements of thedocument 2406 such as settings for controls, continuous selections,discrete selections, and/or object names or references. An exampleapplication 1512 includes an export of recipes from a document 2406, andnew visitors can treat it as an application for navigating a recipe bookand/or adding their own recipes. In certain embodiments, recipes addedby application users are captured in the document 2406, which may be ina separate location from originally published recipes, or in any otherlocation specified by the user 814, such as with the user verb selection2508. Example and non-limiting embodiments include the document 2406and/or selected portions thereof published as a document (e.g., as theapplication 2512) that is operable on a television, such as a smarttelevision, a streaming device, such as Apple TV, a smart watch, and/ora tablet, with configurable access to the document 2406 and/or read-onlyaccess to the published portions of the document 2406.

In certain embodiments, the system 2500 provides capability to publishan application 2512 that provides an application user with access to thedocument 2406 and/or selected portions of the document 2406. The examplepublished application 2512 is a self-contained version of the document,including any or all of the content and/or data in the document 2406. Anexample published application 2512 is operable “offline” (e.g., withoutcommunication access to the document server 2402, and/or withintermittent access to the document server 2402). An example publishedapplication 2512 is configured for selected performance on targetdevices for the application 2512, for example to limit resourceutilization (e.g., memory usage, processor usage, and/or communicationbandwidth) where target device resources are limited (e.g., a smartphone, tablet, smart device, and/or other “thin client” device). Anexample includes determining a target device resource value, such as:memory (such as RAM, storage, external storage, etc.), processing power(such processing speed, cores, available threading, etc.), and/orcommunication capability (such as bandwidth, speed, latency,availability, etc.). The determination of the target device resourcevalue includes detecting resources on an actual device, entry ofresource specifications by the user, data lookup of resource informationfor specified devices, a device type (e.g., a mobile phone and/ortablet), and/or utilizing a technical profile or requirementsinformation to determine device resource levels to be supported by theapplication 2512.

Operations to determine the application configuration value 2514, andaccordingly modulate resource utilization of the application 2512,include at least: inclusion of only a portion of data in the document2406 and/or a portion of the document 2406; inclusion of flat for one ormore data elements in the document 2406 (e.g., replacing referenced orlinked data with flat data; replacing calculated values and/or formulaswith result data having calculations pre-completed; reducing one or moreconfigurable/selectable aspects of the document 2406 with fixed valuesand/or values having a limited selection set; adjusting an update rateof linked or referenced data; adjusting an update rate of calculatedvalues and/or formulas; and/or adjusting a resolution of images, charts,graphs, and/or other visualization elements in the document 2406). Theterm “flat data” includes data stored in-line in the application 2512and/or on device storage of the target application device, that is notlinked (e.g. dependent upon a parent or source data set) or referenced(e.g. calculated at run-time, and/or looked up from another location inthe document and/or source data). In certain embodiments, theapplication 2512 includes a self-contained format which is executable ona target operating system and/or which is executable in a targetoperating environment (e.g. an .exe file, an archive file instead ofreferenced or linked data, calculated values.

Referencing FIG. 8, an example system 800 includes a document server 802communicatively coupled to a client computing device 804. Certainfurther aspects of the example document server 802 and/or the clientcomputing device 804 are described following in the disclosurereferencing FIG. 9.

An example system 800 includes the document server 802 that communicatesat least a portion of a document 806 to the client computing device 804.A document 806, as used herein, references a collection of data relatedtogether for purposes of display, reading, editing, viewing, playback,printing, organizing, collaborating, and/or communicating with therelated collection of data. In certain embodiments, a document mayreference the data as displayed (e.g. a view of the collection of datarelated that is presentable to a user on a screen, printed page, and/orany other type of user-focused realization of the related collection ofdata or a portion thereof), as stored in non-transient memory, acollection of operations which, if executed, render a display consistentwith the document, portions of a larger related collection of datapresent on a given device (e.g. a parent document on a server, where aportion of the parent document present on a client computing device isthe “document”) and/or other similar constructions or organizations ofdata and information. A document or portions thereof may be present inmultiple locations.

The example system 800 includes a client computing device 804 having anumber of circuits constructed to functionally perform operations of theclient computing device 804. An example client computing device 804includes a user interaction circuit 808 that interprets a user selection810, where the user selection 810 includes at least one data value 812,where the document 806 includes the data value(s) 812. The clientcomputing device 804 may include one or more computers, but the presentdisclosure contemplates the computing device as component or group ofcomponents that perform the functions of the client computing device804. Example and non-limiting structures to perform operations of theclient computing device 804, including structures of any associatedcircuits, include one or more user input devices (e.g. mouse, keyboard,touch screen, audio input) and/or communications received from one ormore user input devices, storage and/or access to at least a portion ofthe document 806 (e.g. a displayed portion to the user 814, a storedaspect of the document 806 in a memory location and/or access to astored aspect of the document 806 through a communication network),processors for executing instructions stored in a non-transient memorylocation, memory devices storing the document 806, portions of thedocument 806, and/or the instructions, a display device, a networkinfrastructure, a cloud storage and/or computing infrastructure, and/orcommunications to a display device where the display device isresponsive to the communications and displays selected portions of thedocument 806, interface components (e.g. a graphical-user interface,menus, commands, and selections) which may be graphical orhardware-based.

In certain embodiments, a document server 802 may not be present, and/orthe document server 802 or portions thereof may be present on a samehardware device as the client computing device 804 and/or portions ofthe client computing device 804. The user 814 may interact directly withthe client computing device 804, and/or may be in communication with theclient computing device 804.

Example and non-limiting user selections 810 include one or more of: auser-entered keyword, at least one data value selected by the user 814,a tag value selected by the user 814 (e.g. a style tag or an arbitrarytag), and/or determining a selected range value in response to the userselection 810. Certain non-limiting examples of user selections 810 areillustrated, but the user selection 810 should be understood broadly toinclude any operation by the user 814 to indicate source data 830,contextual information, information of interest, and/or any other typeof information indicating a type of data the user 814 is selecting forextraction of related, re-organized, and/or structured data. An exampleuser selection 810 includes the entry of a word—for example “quarterly”,“cost”, “available”, “measure”, any other type of information, includingarbitrary character strings, and/or wild cards. An example userselection 810 includes a tag value selected and/or entered by the user814—for example a value that indicates information with appropriaterelated headings, metadata, column titles, row titles, or otherinformation indicated by a tag. In certain embodiments, a tag indicatesportions of a document automatically tagged by the application as adocument is prepared, such as paragraph types, tables, figures, graphs,referenced information, linked information, and/or data types. Incertain embodiments, a tag indicates portions of a document tagged by auser 814, either manually, as part of user defined rules, and/or as partof a user defined template. An example user selection 810 includes atleast one data value selected by the user 814, such as a selected wordor range of words, a heading, a specific data value (e.g. a name, word,number, or object), a selected range of data (e.g. a table, a column,row, and/or element of a figure such as a bar, pie slice, and/or dataseries). In certain embodiments, the user selects a value and the userinteraction circuit 808 determines the user selection 810 based on theuser selected value. For example, a user 814 may select only a portionof a value, or related value, and the user interaction circuit 808determines a user selection 810 based on the portion or related value.In certain embodiments, the user selects a linked data value (e.g.underlying source data 830 is in a different document (on the documentserver 802, the client computing device 804, or elsewhere), a portion ofthe document not present on the client computing device 804, and/orexternally sourced data such as from a website, database, and/or cloudstorage). In certain embodiments, the user selects a data referencevalue, such as a value where the underlying source data 830 is presentelsewhere (in the document or otherwise), and is not locally stored, oris only stored for responsiveness purposes but the source location isconsidered the originator of the data (at least for the purposes of thedata reference value—the source location may be another reference). Incertain embodiments, the user selects a data record, for example anentire file or set of data that is referenced only by title, identifier,and/or unique key.

In certain embodiments, the user interaction circuit 808 determines theuser selection 810 from the user selected value using such operationsas, without limitation: using an entire word where the user has selectedonly a portion of the word; selecting an entire table, row, or columnwhere the user 814 has selected only a portion of the table, row, orcolumn; selecting an entire document section (e.g. a paragraph, a taggedregion, related tables, figures, or other data) where the user 814 hasselected only a portion of the document section; selecting related datawhere the context indicates the related data is likely to be desired(e.g. the user 814 selects an aggregated data value and the userinteraction circuit 808 selects additionally or alternatively theunderlying data forming the aggregated value); selecting additional oralternative data according to rules specified by the user 814 (e.g.always take a whole table, take only the columns from cells selected,and/or always get referenced data as well); selecting additional oralternative data according to rules specified by a document template(e.g. a “quarterly reports” document template has one set of selectionrules, a “personnel file” document template has a different set ofrules, and a “recruit candidate” document template has another set ofrules); selecting additional or alternative data according to deviceresources associated with the user 814 (e.g. user 814 has limited localmemory, limited network access, and/or limited processing power, andmaking appropriate selection decisions to conserve the appropriateresources); selecting additional or alternative data according to rulesdefined by an administrator; selecting additional or alternative dataaccording to rules defined by a document creator, and/or selectingadditional or alternative data according to past operations by the user814 (e.g. user 814 has always added certain types of data to an extractoperation after selecting similar data previously, user 814 has beenoperating in a selected portion of the document indicating the type ofinformation likely to be of interest to the user, and/or the user 814has removed certain types of data from an extract operation afterselecting similar data previously).

In certain embodiments, the user interaction circuit 808 provides thedata value of the user selection 810 as an inferred data value. Exampleand non-limiting operations to provide the data value of the userselection 810 as an inferred value include: determining the inferreddata value in response to: a document type value (e.g. report, draft,publication, personnel file, white paper); determining the inferred datavalue in response to a document location value (e.g. on the documentserver 802, on the client computing device 804, in a cloud storage (notshown), or over a mobile network); determining the inferred data valuein response to a predefined data association value such as a templatedata association value or a user selected data association value;determining the inferred data value in response to a prior useroperation; prompting a user with a number of data association values (anexample implementing GUI may include such prompts as: “Did you mean toselect: 1 [KEEP MY SELECTION]; 2 [TABLE A]; 3 [COLUMN B]; 4 [DOCUMENTSECTION C]; 5 [PARAGRAPH D]; 6 [STYLE TYPE E]; OR 7 [OTHER]), anddetermining the inferred data value according to the prompt response;and/or determining the inferred data value in response to a priorityvalue associated with each of a number of related data values, forexample the current context such as date, network responsiveness, userrole or title, user history, etc., indicates that monthly revenue ishigher priority than quarterly revenue when the aggregated annualrevenue value is selected by the user 814 for extract operations.

The example client computing device 804 further includes the userinteraction circuit 808 interpreting a second user selection 816including an extract value 818. Example and non-limiting extract values818 include a document extract location value (e.g. a position in thedocument 806 to place the extracted data 828 from extract operations),and/or an extracted data 828 type value (e.g. provide extracted data 828as a table, figure, bulleted list, aggregated data (e.g. a pivot table),a formatted display of extracted data 828, and/or a list of extracteddata 828. In certain embodiments, the user interaction circuit 808determines the extract value 818 in response to the context of useroperations (including at least any context descriptions providedthroughout the present disclosure), in response to a user input(including a prompted user input), in response to rules (e.g. userentered, template based, document creator based, and/or administratorentered), in response to a type of the selected data from the userselection 810, and/or in response to historical operations of the useror other users on the document. In certain embodiments, the extractvalue 818 includes a location to place extracted data 828, a type ofdata display for the extracted data 828, a status of the extracted data828 after extraction (e.g. linked data, referenced data, and/or flatdata), and/or a formatting of the extracted data 828 for display. Anexample system 800 includes the user interaction circuit 808 utilizingor confirming (e.g. via a prompt to the user 814) that a current editinglocation within the document 806 (e.g. a cursor location) is thedocument extract location value, and/or otherwise allowing the user 814to enter an extract location value via one or more second userselections 816, and determining the portions of the extract value 818indicating the type of extracted data, and/or the formatting and displayparameters of the extracted data, through any of the operationsdescribed herein, and/or through one or more prompts to the user 814,whereby the user 814 provides one or more second user selections 816 tofacilitate a data extraction with the desired parameters.

In certain embodiments, the client computing device 804 includes anextracted data generation circuit 820 that creates a data view 822 inresponse to the user selection 810 and/or the extract value 818, forexample pulling referenced or linked data, sorting through the userselection 810 for intended data (e.g. ignoring null values, calculatingor updating values, indexing or sorting data, and/or pulling relevantdata from an entire selection of data such as keywords, keywords withassociated data, and/or specific data columns). In certain embodiments,extracted data 828 is pulled, at least in part, from source data 830.The example system 800 includes source data 830 positioned within thedocument 806 (e.g. within the document but not within the data value812), positioned on the document server 802 but outside the document806, and/or external to the document server 802—for example dataprovided by a third party access such as an API interfacing with anexternal data source (not shown), data stored on another clientcomputing device (not shown), and/or data stored on a network and/orcloud server. In certain embodiments, all of the data in the extracteddata 828 is within the data value 812. Any portion, all, or none of theextracted data 828 may be taken from source data 830, positionedanywhere with communication to the client computing device 804.

In certain embodiments, the data view 822 includes all of the datacontemplated for the extracted data 828, and is positioned at thespecified location. In certain embodiments, the data view 822 includesrelevant portions of the extracted data 828 for display to the user 814,where other portions of the extracted data 828 are prepared in the dataview 822 when accessed by the user 814, over time to limit resourceconsumption (e.g. over a slow network), and/or in display portions toenable limiting utilization of resources (e.g. memory). Example andnon-limiting operations of the extracted data generation circuit 820include creating a table of extracted data 828, creating a formatteddisplay of extracted data 828, creating a structured data view ofextracted data 828, creating an aggregated view of extracted data 828,and/or creating a list of extracted data 828. In certain embodiments,the source data 830 is unstructured data. Unstructured data, as usedherein, should be understood broadly, and includes any data that is notstructured according to the data view 822, that is not sorted, indexed,and/or aggregated, that is not structured for an intended purpose of theuser 814, and/or that is structured for a different purpose than that ofthe user 814 or for the data view 822. It can be seen that a givenelement of data may be structured for one purpose, but unstructured fora different purpose. It can be further seen that a given element of datamay be unstructured, and after operations of the extracted datageneration circuit 820 the element of data may be structured (e.g.confirmed that it is configured for the intended purpose and/oraccording to the data view 822), even if no alteration (includingformatting, presentation to a display, sort order, indexing, and/oraggregating) occurs to the data in the process of making the datastructured.

Non-limiting examples of the extracted data generation circuit 820creating a structured data view of extracted data 828 include: compilingrelevant elements of a prose description into a structured view (e.g.pulling ingredients from a description for a recipe or shopping list),changing a data structure from data structured for one purpose to datastructured for a different purpose (e.g. pulling resume information intoa personnel file template; pulling web based information into astructured template; pulling information from an annual report into atable of relevant financial information; reconfiguring table columnsinto a desired format including re-ordering and/or removing columns;restructuring a bulleted list of information into a table based format;summarizing and/or aggregating granular data into selected categories;combinations of these; and/or reversals of these). In certainembodiments, extracted data 828 includes data that corresponds to theuser selection 810, linked data that is determined (e.g. looked up,referenced, and/or imported) in response to the user selection 810,and/or referenced data that is determined in response to the userselection 810. In certain embodiments, the extracted data generationcircuit 820 additionally and/or alternatively determines an extractioncontext parameter 824, and creates the data view 822 further in responseto the extraction context parameter 824. Non-limiting examples ofdetermining the extraction context parameter 824 include: interpreting auser interaction history with the document (e.g. the user has expressedinterest in revenues, old records, personnel information, eventsoccurring on Tuesdays, certain data types within the document, and/orcertain sections of the document); interpreting a user context selection(e.g. the user has indicated financial reports are due, the user isusing a limited resource device, the user has indicated an access timelimit for the document, an access time limit for the document isapparent from the system 800 status, other users are accessing portionsof the document, and/or a regulatory deadline of a specific type isapproaching); determining the extraction context parameter in responseto a document type value, a document location value, a prior useroperation, a template data association value (e.g. the templateindicates certain data types are associated), and/or a user selecteddata association value (e.g. the user indicates, potentially in responseto a prompt, that certain data types are associated).

An example user interaction circuit 808 interprets a user data changeinput value 826. An example user data change input value 826 includes achange to the displayed portion of the data view (e.g. the user entersdata, requests a search, and/or performs another interaction with thedocument). The example user interaction circuit 808 updates a sourcedata 830 including the data value from the user selection 810 inresponse to the user data change input value 826. For example, theextracted data 828 may be linked or referenced data, where the sourcedata 830 is located elsewhere in the document 806, on the documentserver 802, in a cloud or networked storage location, and/or includesexternal data such as a database and/or website. Previously knownsystems prevent linked, referenced, or other non-sourced data fromupdating the underlying source data 830. Previously known operationsinclude blocking changes to linked data, breaking the link upon editinglinked data, or providing a warning to a user that the linked data isnot editable. In certain embodiments, the user interaction circuit 808updates the source data 830 in response to an update of the linked data,and/or updates the source data 830 without breaking the link. In certainembodiments, the user interaction circuit 808 updates the source data830 in response to a type of the data (e.g. blocking changes to certaindata such as a personnel related data field), in response to anauthorization level, title, and/or role of the user 814, in response toa location of the source data 830 (e.g. allowing updates within thedocument 806 but not externally), in response to a protected status ofthe source data 830 (which may be user-selectable or not, and may belocal to the user 814 or global to the document 806), in response to aconflict resolution with other users of the document (e.g. referenceoperations of the system 100 disclosed referencing FIGS. 1-7), and/oraccording to any other data management principles implemented by thesystem 800.

In certain embodiments, multiple rules are present for determining thedata value 812 from the user selection 810, for determining theextraction value 818, and/or for determining the extract contextparameter 824. An example system 800 includes applying all mutuallycompatible rules, applying the rules in a manner where the greatestnumber of rules can be applied and excluding the least number of rules,applying the rules in a priority determined by the rule maker (e.g.title or role, current user v. a past user, and/or administratorstatus), and/or applying the rules in manner determined by the type ofinformation (e.g. rules for human resources, personnel, legal, and/orinclusion of personally identifiable information or health informationmay get priority). Any other rule conflict management scheme understoodin the art is contemplated herein.

Referencing FIG. 9, a schematic illustration 900 of an example data view822 created in response to a user selection 810 is depicted. Theillustration 900 includes a document 806 having a prose recipedescription 902 (e.g. a paragraph form description of a recipe formaking a food item) and an event guest list. The event guest list isdepicted as source data 830 in the illustration 900—for example theevent guest list may be present in one portion of the document 806, andthe prose recipe description 902 present in another portion of thedocument 806. The illustration 900 depicts a data value 812—for exampleportions of the prose recipe description 902 and event guest listselected according to a user selection 810. In the example, the datavalue 812 is a partial selection of each of the prose recipe description902 and the event guest list to illustrate certain aspects of thepresent disclosure, however the data value 812 may fully include one ormore of the prose recipe description 902 and the event guest list,and/or the prose recipe description 902 and the event guest list may beindicated in a manner other than as illustrated. The illustration 900further includes a user schedule, depicted as source data 830 that ispresent on the document server 802 but not within the document 806,although accessed source data 830 may be located anywhere that isoperationally accessible to the client computing device 804 as describedherein. The illustration 900 further depicts store information (“Storeinventories, hours, prices, locations”), depicted as external sourcedata 830 relative to the document server 802. In the illustration 900,the client computing device 804 (not shown), through operations such asthose described with reference to the system 800, has created a dataview 822 in response to the user selection 810 (realized as the datavalue 812). The client computing device 804 has further determined arecipe table (e.g. a list of cooking operations determined from theprose recipe description 902, and/or cooking parameters such as times,temperatures, and ingredients) and a shopping logistics (e.g. times toshop at which stores, and the ingredients list to be purchased). It willbe recognized that the illustration 900 depicts the data view 822showing structured data in a manner uniquely useful to the user 814. Inthe illustration 900, the system 800 brings together the user schedule,event information, and planned food items together with external datasuch as store inventories, hours, and locations, and presented the datafor the user to obtain the items needed for the event, to prepare thefood items, and to integrate shopping with the schedule of the user. Incertain embodiments, the user 814 may have entered a selection—forexample “plan an event”—that enabled the client computing device 804 todetermine that selection of a portion of the prose recipe description902 was intended to bring the entire prose recipe description 902 intoconsideration for generating the data view 822. In certain embodiments,the context of the extraction operations in the illustration 900 furtherenabled the client computing device 804 to reach out to the userschedule and/or store information, even where such data is not presentin or explicitly referenced in the document 806. In certain embodiments,the client computing device 804 may output the data view 822 in a manneraccessible to the user 814, and/or may add the data view 822 to thedocument 806. In certain embodiments, the client computing device 804adds the data view 822 to the document 806, creates a separate document(not shown) that includes the data view 822, and/or provides the dataview as a tooltip (e.g. the user 814 hovers over a document 806 portionin a given context, and the client computing device 804 generates a dataview 822 for temporary display, and/or allows the user 814 to confirmand generate the data view 822 into a new document or incorporate thedata view 822 into a currently existing document 806.

Operations such as performed by the system 800 and depicted in theillustration 900 allow for rapid and convenient generation ofuser-oriented data extraction. Example and non-limiting applicationsinclude generation of a business card or profile document that pullsinformation from a number of data sources into a convenient and selecteddata display template, that rapidly creates structured information froma user 814 based on source data 830 and/or document elements that areunstructured and/or not structured for the purpose desired by the user814, and allows the user 814 to update source data 830 using thestructured data in the data view 822 directly, without having to go tothe source data 830. The user 814 is thereby able to consider data in aselected context, avoid the specific formatting and input nuances of thesource data 830, and have rapidly usable output for a selected purpose.

Non-limiting examples of a data view 822 include a structuredrepresentation of data, selected data fields, template form titles (e.g.table row and/or column titles, field names, category titles,boilerplate information, company or entity names, copyright notices,confidentiality notices, and the like), and/or information developedfrom data in an aggregated, filtered, sorted, parsed, and/or otherprocessed format. Example and non-limiting operations of an extracteddata generation circuit 820 to provide a data view 822 include providinga pop-up separate view of the data view 822, a downloadable separateview of the data view 822, a tool tip data view 822 that appears inresponse to a user indication of a value of the document 806 (e.g.highlighting, selecting, or hovering a selection cursor on and/or over aname, word, term, date, data field), where the tool tip data view 822includes a structured data view 822 such as a “card” having contextualinformation about the user indicated value. As used herein, a cardincludes, without limitation, a discrete display of data elements, whichmay be provided within a box or bounded shape, and/or which may beprovided within a data view 822 having an area configured for display inresponse to a selected size and/or shape, and/or in response to a userscreen size for the client computing device 804, and/or another deviceused by the user to access the data view 822 (e.g. a tablet, smartphone, laptop, desktop, and/or a smart device having access to theclient computing device 804, the document server 802, and/or apublication area for the card such as a website and/or network location,and/or having an application 2512 published by the applicationpublishing circuit 2504 (see, e.g. disclosure referencing FIG. 25). Incertain embodiments, the card is configured to fit on the user screen.In certain embodiments, the card is configured to fit within a narrowerdimension of the user screen (e.g. a mobile device in a “portrait”orientation). An example card includes thereupon one or more data fieldsand/or VE 1116, such as a table, graph, chart, and/or image. In certainembodiments, the parameters displayed include a data group structured toconvey the theme of information for the card, including withoutlimitation information about a person, an entity, a project or task, arecipe, one or more elements of a row on a table, one or more elementsof a chart, and/or one or more elements of a graph. A card may includetitles, logos, disclaimers, data source information, contactinformation, and/or any other selected information. The describedexamples for a card are non-limiting illustrative examples.

In certain embodiments, the extracted data generation circuit 820accesses contextual information (e.g. location in the document 806 thatuser is working with; rules set by the user, a document template, and/oran administrator; a current time of day and/or calendar date; recentoperations performed by the user; a user role, title, or user-indicatedinformation about the user; the type of data within the user indicatedvalue; and/or a section or section type of the document 806 within withthe user is working). Example and non-limiting data views 822 mayinclude live data (e.g. data updated in real-time and/or with a shortrefresh period), linked data (e.g. links or references to other data,which may be updated periodically, based on system performance, and/orupon user request), flat data (e.g. data copied into the data view 822at generation time which is not linked to the originating data), and/ormay include indications of the status of the data (age, refresh time,live, etc.). In certain embodiments, the data view 822 may be providedas an addition to the document 806—for example a first table columnincludes a data field (e.g. a name, job title, project name, projectstatus, etc.) and a second table column is populated with the data view822 including structured data relative to the first table column.Additionally or alternatively, the data view 822 including thestructured representation of data may be volatile (e.g. it disappearswhen the user changes the focus), provided in a non-volatile mannerseparate from the document 806, generated into a new section of thedocument 806, and/or the user may receive a prompt to specify an actionto be performed with the structured representation of data (e.g. copy toa clipboard, paste in an e-mail, save to a file, and/or place it in thedocument 806).

A number of procedures for performing certain operations to extract datafrom a document are described following. Operations are illustrative andnon-limiting, and may be re-ordered, divided, and/or combined in anymanner to perform similar functions, as will be understood to one ofskill in the art having the benefit of the disclosures herein. Incertain embodiments, one or more operations may be performed bycomponents of a system such as the system 800.

Referencing FIG. 10, an example procedure 1000 includes an operation1002 to interpret a user selection including at least one data value, anoperation 1004 to interpret a second user selection including an extractvalue, and an operation 1006 to create a data view in response to theuser selection. The example procedure 1000 further includes an operation1008 to display at least a portion of the data view in response to theextract value. In certain embodiments the procedure 1000 includesperforming the operation 1002 by receiving a user-entered keyword,determining a data value selected by the user, determining a tag valueselected by the user, and/or determining a selected range value inresponse to the user selection. Example and non-limiting data valuesinclude a table column, a table row, a style tag, an arbitrary tag (e.g.an identifier for a data selection within the document, with or withoutan inherent meaning to the identifier), a linked data value, a datareference value, and/or a data record.

In certain embodiments, the data value includes an inferred data value,and the operation 1002 further includes determining the inferred datavalue. Example and non-limiting operations to determine the inferreddata value include determining the inferred data value in response to adocument type value, determining the inferred data value in response toa document location value, determining the inferred data value inresponse to a predefined data association value, determining theinferred data value in response to a prior user operation, determiningthe inferred data value in response to a user selected data associationvalue and/or a default data association value, and/or determining theinferred data value in response to a priority value associated with eachone of a number of related data values. An example operation 1002further includes determining the inferred data value in response to apredefined association value, and determining the predefined associationvalue in response to a template data association value and/or a userselected data association value. An example operation 1002 furtherincludes prompting a user with a number of data association values, anddetermining the inferred data value in response to the user selectedassociation value and/or a default data association value.

An example procedure 1000 further includes the operation 1004 furtherincluding determining a document extract location value and/or anextracted data type value. An example procedure 1000 further includesthe operation 1006 including an operation such as: creating a table ofextracted data, creating a formatted display of extracted data, creatinga structured data view of extracted data, creating an aggregated dataview of extracted data, and/or creating a list of extracted data. Incertain further embodiments, the extracted data includes datacorresponding to the user selection, linked data determined in responseto the user selection, referenced data determined in response to theuser selection, and/or portions thereof. In certain embodiments, theoperation 1006 further includes creating the data view by determiningthe portion of the data corresponding to the user selection, linked datadetermined in response to the user selection, referenced data determinedin response to the user selection further in response to an extractioncontext parameter. An example procedure 1000 further includes theoperation 1006 further including determining the extraction contextparameter by performing at least one operation such as: interpreting auser interaction history with a document, interpreting a user contextselection, determining the extraction context parameter in response to adocument type value, a document location value, and/or a prior useroperation, and/or determining the extraction context parameter inresponse to a template data association value and/or a user selecteddata association value. An example procedure 1000 further includes theoperation 1006 further including prompting a user with a number ofextraction context parameter values, and determining the extractioncontext parameter in response to a user selected extraction contextparameter value and/or a default extraction context parameter value. Anexample procedure 1000 further includes the operation 1006 furtherincluding determining the extraction context parameter value in responseto the second user selection.

The example procedure 1000 further includes an operation 1010 tointerpret a user data change input value, where the user data changeinput value includes a change to the displayed portion of the data view.The example procedure 1000 further includes an operation 1012 to updatea source data including the data value, where the updating is inresponse to the user data change input value. An example procedure 1000further includes the created data view being a structured data view,and/or the source data being unstructured data.

Referencing FIG. 1, an example system 100 includes a first computingdevice 102 communicatively coupled to a second computing device 104.

The example system 100 includes the first computing device 102 includinga document server 106 that communicates a first operation log 108 to thesecond computing device 104, where the first operation log 108 includesone or more sequential operations defining operations to create a firstdocument. For example, and without limitation, the first operation log108 includes instructions such as inserting text into a document,formatting one or more aspects of the document, adding breaks to thedocument, and referencing data external to the document or related toother portions of the document. The first operation log 108 includessequential operations such that, if the sequential operations areexecuted, the first document would be created. In certain embodiments,the first computing device 102 communicates the first operation log 108to the second computing device 104 by communicating a relevant orselected portion of the first operation log 108 to the second computingdevice 104. For example, the first computing device 102 may communicateonly portions of the first operation log 108 that affect pages 1-10 of adocument, where a user associated with the second computing device 104has communicated that only pages 1-10 are requested. Any otheroperations to select portions of interest of a document, relevantsubject matter within a document, or the like, and to therebycommunicate relevant portions of the first operation log 108 arecontemplated herein. In certain embodiments, the first operation log 108is included as a portion of a more complete operation log (not shown).In certain embodiments, the first computing device 102 updates the firstoperation log 108 consistent with information from a more completeoperation log upon access or request to relevant portions of a document,and the updated first operation log 108 is seamlessly incorporated withother operations herein as the “first operation log 108.”

The example system 100 includes a second computing device 104 thatperforms operations to create a first document view 110 in response tothe first operation log 108. For example, the second computing device104 performs all or a portion of the operations in the first operationlog 108, and creates a first document view 110 providing arepresentation of the result of the operations in the first operationlog 108. The first document view 110 includes portions of a document forviewing (e.g. a page or section currently accessed by a user incommunication with the second computing device 104), printing, editing,or similar operations by the user. An example second computing device104 includes a user interface 112 to a user, allowing for display to theuser (e.g. through output to a screen, by providing a text or alert,providing a report, providing stored data, and/or any other type ofdisplay to the user), and further allowing for input from the user (e.g.via network communication to a user device, keyboard and/or mouse input,voice input, biometric input, and/or camera input). The describedexamples of the user interface 112 are non-limiting, and any type ofuser interface 112 is contemplated herein.

The example second computing device 104 further performs operations toreceive a user document change input value 114, and to create a localoperation log 116 in response to the first operation log 108 and theuser document change input value 114. For example, the second computingdevice 104 may append the first operation log 108 with operationscreated to reflect the user document change input value 114, such thatthe local operation log 116 reflects a document consistent with theedits made by, and displayed to, the user associated with the secondcomputing device 104. An example local operation log 116 includes atleast one sequential operation defining operations to create a seconddocument, such as the document consistent with the edits made by, anddisplayed to, the user associated with the second computing device 104.In certain embodiments, the second computing device 104 updates thefirst document view 110 in response to the user document change inputvalue 114, for example to display the document as edited by the user. Anexample second computing device 104 further communicates a change value118 for the first operation log 108 to the first computing device 102 inresponse to the first operation log 108 and the local operation log116—for example to communicate additional changes made by the userassociated with the second computing device 104 after the receipt of thefirst operation log 108 from the first computing device 102. The timingfor communicating the change value 118 to the first computing device 102is selectable and/or determinable in real time, and the timing selectedin certain embodiments depends upon the communication speed between thefirst and second computing devices 102, 104, the performance of thefirst and/or second computing devices 102, 104, the rate of change ofthe local operation log 116 by the user associated with the secondcomputing device 104, a number of other users associated with separatecomputing devices that are simultaneously accessing and/or changing adocument reflected by the first operation log 108, the availability ofcommunication between the first and second computing devices 102, 104,and/or user preferences provided during the creation of a documentreflected by the first operation log 108 and/or during an editing oraccessing session of the document reflected by the first operation log108.

In certain further embodiments, a system 100 includes the firstcomputing device 102 further communicatively coupled to a thirdcomputing device 120, where the document server 106 further communicatesthe first operation log 108 to the third computing device 120. Theexample third computing device 120 creates a second document view 122 inresponse to the first operation log 108, where the second document view122 includes content generated using at least a portion of the firstoperation log 108. The operation log 108 or portion thereof as providedto the third computing device 120 may differ from the operation log 108or portion thereof as provided to the second computing device 104—forexample a user associated with the third computing device 120 may beaccessing a different portion of a document reflected by the firstoperation log 108. However, the first operation log 108 provided to thethird computing device 120 is consistent with the first operation log108 provided to the second computing device 104, at least before updatesare provided to the first operation log 108 in response to user edits atvarious computing devices. The example third computing device 120further receives a second user document change input value 124, andcreates a second local operation log 126 in response to the firstoperation log 108 and the second user document change input value 124.The example second local operation log 126 includes at least onesequential operation defining operations to create a third document,such as the document consistent with the edits made by, and displayedto, the user associated with the third computing device 120. The examplethird computing device 120 further communicates a second change value128 for the first operation log 108 to the first computing device 102 inresponse to the first operation log 108 and the second local operationlog 126.

An example system 100 further includes an arbitration circuit 130 thatconstructs a second operation log 132 in response to the first operationlog 108, the change value 118, and the second change value 128. Theexample system 100 includes the arbitration circuit 130 provided on thesecond computing device 104, although the arbitration circuit 130 may beprovided on any device in the system 100, and/or may be distributedacross more than one device. The provision of the arbitration circuit130 on the second computing device 104 allows for conflict managementfor changes to the operation log 108 to be managed at the client level(e.g. where the second computing device 104 is a client device to thefirst computing device 102), allowing for more responsive conflictresolution for the user associated with the second computing device 104.In certain embodiments, for example with a thinner client, conflictresolution may be moved partially or completely up to the firstcomputing device 102. Additionally or alternatively, more than oneclient device, and/or each client device (e.g. the second computingdevice 104 and the third computing device 120) may include anarbitration circuit 130 and/or portions of the arbitration circuit 130.

In certain embodiments, the local operation log 116 includes a firstrecord of operations which, if implemented on a document, would providea document having edits consistent with the user document change inputvalue 114, and the second local operation log 126 includes a secondrecord of operations which, if implemented on a document, would providea document having edits consistent with the second user document changeinput value. In the example, the third computing device 120 communicatesthe second change value 128 to the first computing device 102, whichmakes the second change value 128 available to the arbitration circuit130. In the example, the changes in the second local operation log 126are made available to the arbitration circuit 130 via the communicationof the second change value 128. In certain embodiments, the second localoperation log 126 is communicated directly to the arbitration circuit130.

An example arbitration circuit 130 applies non-conflicting operations ofthe local operation log 116 and the second local operation log 126, andfurther resolves conflicting operations of the local operation log 116and the second local operation log 126 to construct the second operationlog 132. In certain embodiments, the second operation log 132 is passedto the first computing device 102, allowing the first computing device102 to update the operation log 108 to include operations from both ofthe second computing device 104 and the third computing device 120. Incertain embodiments, a combined change value (not shown) is constructedand passed to the first computing device 102, and/or the secondoperation log 132 includes only changes relative to the operation log108, to allow for a reduced set of information to be passed to the firstcomputing device 102 and to update the operation log 108 to includeoperations from both of the second computing device 102 and the thirdcomputing device 120.

In certain embodiments, during editing and viewing of the document fromusers associated with the second computing device 104 and the thirdcomputing device 120, changes are allowed in an “optimistic”collaboration—allowing for responsive editing to the document under theassumption that conflicting operations will not be created, and/or thatconflicting operations can be resolved. Periodically and/orepisodically, conflicts which may be present are resolved according tothe operations of one or more arbitration circuits 130.

An example arbitration circuit 130 resolves conflicting operations ofthe local operation log 116 and the second local operation log 126utilizing one or more operations described herein. An examplearbitration circuit 130 applies individual operations from the localoperation log 116 and/or the second local operation log 126 byprioritizing operations according to a time stamp of each operation—forexample a first wins or a last wins prioritization. An examplearbitration circuit 130 applies individual operations from the localoperation log 116 and/or the second local operation log 126 byprioritizing operations according to a time stamp of the operation log116, 126—for example when the corresponding operation log 116, 126 wascreated, last saved, first lists an edit, and/or last lists an edit. Incertain embodiments, the time stamp of the operation log 116, 126provides an indication of when a user first accessed a document, firstedited a document, last accessed a document, and/or last edited adocument. Accordingly, the arbitration circuit 130 can apply a selectedprioritization for operations in each operation log 116, 126 accordingto predetermined priority selections. An example arbitration circuit 130prioritizes operations according to a priority associated with thesecond computing device 104, the third computing device 120, and/or apriority associated with a user of one of the computing devices 104,120. For example, the arbitration circuit 130 may look at user logininformation, and determine whether a user has higher priority thananother user, and assign higher priority to changes from the operationlog 116, 126 provided by the computing device 104, 120 associated withthe higher priority user. The prioritization of a user and/or acomputing device 104, 120 may vary according to the section of thedocument wherein the user and/or computing device 104, 120 is viewingand/or editing—for example a user associated with a finance role mayhave a higher priority in one area of the document, and a userassociated with an engineering role may have a higher priority in asecond area of the document. An example arbitration circuit 130 resolvesconflicting operations of the operationlog 116 and the second localoperation log 126 utilizing a time of communication of the operations tothe first computing device 102—for example a “first come first serve”prioritization may assign the higher priority for conflicting edits tothe first of the computing devices 104, 120 to provide one of theconflicting edits, where an alternative prioritization may assign thehigher priority for conflicting edits to the last of the computingdevices 104, 120 to provide one of the conflicting edits. One of skillin the art, having the benefit of the disclosure herein, will recognizethat the type of document involved, the workflow of the group that maybe working on the document, the hierarchy of the organization, the typeof information in the document, and other considerations known to thatperson of skill in the art contemplating a particular embodiment of thearbitration circuit 130 will affect the type and implementation of theprioritization utilized.

An example arbitration circuit 130 further resolves conflictingoperations of the local operation log 116 and the second local operationlog 126 according to a type of the conflicting operations (e.g.operations of one type—such as deletions—may receive differentprioritization rules than operations of a different type—such as addinga section). Additionally or alternatively, prioritization rules may beselected according to an aspect of the data, for example payroll data,personnel data, and/or flagged data, may receive distinct prioritizationrules. An example arbitration circuit 130 applies individual operationsin a priority selected according to which computing device 104, 120and/or associated user with the computing device 104, 120 and also whichregion of a document would be affected by the conflicting operations. Anexample arbitration circuit 130 applies individual operations in apriority selected according to a performance characteristic for acomputing device, for example providing a higher priority to a moreresponsive or more capable second or third computing device 104, 120,and/or providing a higher priority to a less responsive or capablesecond or third computing device 104, 120. An example arbitrationcircuit 130 applies individual operations in a priority selected inresponse to a conflict management difficulty value—for example ifutilizing a change from the local operation log 116 results in a loweramount of conflict for a greater number of users than utilizing a changefrom the second local operation log 126, the change from the localoperation log 116 may be deemed to be a lower conflict managementdifficulty value. Example and non-limiting considerations fordetermining a conflict management difficulty include a type ofoperations of the change (e.g. adding, deleting, inserting elements,linking data and/or calculations, etc.), a number of users affected by achange and/or a number of local operation logs 116, 126 in conflict withthe change, and an amount of time to re-insert a change if the change isnot applied by the system (e.g. the change is an otherwise lowerpriority conflict change and not applied—how long would it take a userto re-enter). In certain embodiments, an arbitration circuit 130 appliesindividual operations in a priority selected according to a number ofoperations represented in the corresponding operation log 116, 126, adocument editing time corresponding to the operation log 116, 126 forthe computing device 104, 120, and/or according to a change amountand/or a rate of change of a reference region of a document that wouldbe affected by the conflicting operations. A change amount may bemeasured by a quantitative amount of the change (e.g. characters,keystrokes, and/or processor operations to effect the change) to theoriginal operation log 108, an amount of document output change (e.g. a3-keystroke insertion of a table adding 4 printed pages to the documentmay be a bigger change than a typed paragraph), and/or a relative amountof change compared to other operation logs 116, 126 present in thesystem 100. A rate of change amount may be measured according to edittime of the particular user and/or calendar time (e.g. the documentsection has been changing three times a day relative to another sectionchanging once per week), according to any measure of change amount, andfurther may depend upon the document portion experiencing the change(e.g. an expected section to update annually may be deemed to bechanging quickly if updated twice in a week).

An example arbitration circuit 130 additionally or alternativelyresolves conflicting operations of the corresponding operation logs 116,126 according to a number of computing devices that are currentlyaccessing a reference region of a document that would be affected by atleast one of the conflicting operations, a number of computing devicesthat have recently (e.g. within the last hour, last day, last week, lastmonth, and/or last year depending on the context of the document andrelevant data) accessed the reference region of a document affected,that are currently editing the reference region of the documentaffected, and/or that have recently edited the reference region of thedocument affected. In certain embodiments, resolving the conflictincludes applying a higher priority one of the conflicting changes, anddiscarding a lower priority one of the conflicting changes. Additionallyor alternatively, resolving the conflict can include applying bothchanges, for example with one set of changes marked relative to theconflict (e.g. shown, but in strikethrough), rejecting a lower priorityone of the changes with a notification to the user that entered therejected change, and/or creating a local copy of a document with therejected change saved in the local copy. Depending upon the context ofthe document and the data involved, priority evaluation of conflictingchanges can be applied in response to the criteria in eitherdirection—for example many users of a given document section canindicate changes to that section get a higher priority (e.g. to keep thedocument updated as quickly as possible and ensure users are seeing atimely copy), or to get a lower priority (e.g. allowing users to makemore responsive changes rather than requiring high overheadcommunications to keep all local operation logs 116, 126 in sync). Incertain embodiments, the priority criteria can be selected or affectedby a user selection—for example the user makes a selection to ensurethat the changes they are about to make are prioritized (e.g. inpreparation of a final version of a document before a significant evensuch as a presentation or regulatory filing), or to affect theprioritization criteria.

In certain embodiments, the arbitration circuit 130 updates the changevalue 118 to an updated change value 134 in response to theprioritization of conflicting operation logs 116, 126, and the updatingof the second operation log 132, and communicates the updated changevalue 134 to the first computing device 102. In certain embodiments, thefirst computing device 102 determines a snapshot 136 in response to theupdated change value 134. A snapshot 136 includes sequentialoperation(s) that define a second sequential operation or operationswhich, if executed, results in an equivalent document to the firstdocument created by the operation log 108, and/or created by the secondoperation log 132 (e.g. reflecting conflict resolved changes to theoperation log 108 by users associated with computing devices 104, 120 inthe system 100). In certain embodiments, when a snapshot 136 reflectsconflict resolved information and is an update to the operation log 108,the operation log 108 may be updated with (or replaced with) thesnapshot 136. In certain embodiments, the updating of the operation log108 may include version control with previous versions of the operationlog 108 saved, and/or the operation log 108 simply replaced with thesnapshot 136. In certain embodiments, the first computing device 102provides the snapshot 136 and/or portions thereof as the operation log108.

An example snapshot 136 includes: second sequential operations that havefewer process operations than the first sequential operations of theoperation log 108 and/or second operation log 132; second sequentialoperations that have fewer logical operations than the first sequentialoperations of the operation log 108 and/or second operation log 132;second sequential operations having a simplified description ofoperations than the first sequential operations of the operation log 108and/or second operation log 132; and/or second sequential operationshaving lumped operations relative to the first sequential operations ofthe operation log 108 and/or second operation log 132. In certainembodiments, the snapshot 136 includes object data havingcharacteristics selected to create a document consistent with theoperation log 108 and/or the second operation log 132. For example, anexample snapshot 136 includes one or more tables, and/or additional oralternative objects, having characteristics such that the collection ofone or more objects creates a document consistent with the operation logand/or the second operation log 132. In a further example, the snapshot136 does not include operations, such as descriptions of operations froma user to create a document, but includes only objects andcharacteristics for those objects. In certain embodiments, the snapshot136 includes objects and characteristics for those objects, plus secondsequential operations, such that implantation of the objects plus thesecond sequential operations creates a document consistent with theoperation log 108 and/or the second operation log 132. In certainembodiments, a resource utilization to create a document from thesnapshot 136 is reduced relative to a resource utilization to create thedocument from the operation log 108 and/or second operation log 132,where the resource utilization includes a parameter such as: a totalnumber of processing operations, a memory utilization (e.g.random-access memory utilization, although any type of memory iscontemplated herein), and/or an intermediate memory utilization (e.g. amemory size required during execution of the operation log 108, secondoperation log 132, and/or snapshot 136; for example to create resultantarrays, query results, and the like during operations). Example andnon-limiting object characteristics include object dimensioning, datarelated to the objects (stored within, linked to, referenced to, and/orcalculated within), calculations and/or queries associated with theobjects, object formatting, and/or object sequencing and position. Incertain embodiments, the entire state of a document, reflective of theoperation log 108 and/or the second operation log 132, can be stored inobject descriptions with corresponding object characteristics. Incertain embodiments, the entire state of a document alternatively oradditionally includes one or more operations, such as the secondsequential operations. In certain embodiments, one or more “undo”operations may be lost in creating the snapshot 136, for example asmultiple operations having a specified sequence are lumped into asimplified description of equivalent operations with sequencing lost. Incertain embodiments, “undo” operations as a whole, and/or as relating tospecific computing devices 104, 120 and/or specific users associatedwith a computing device in the system 100 may be preserved. In certainembodiments, a user selection to preserve “undo” capability withrelation to their operations may provide for preservation of theirsequenced operations.

In certain embodiments, the first computing device 102 determines asnapshot 136 at selected times, such as but not limited to: uponreceiving the communicated change value 118 from the second computingdevice 104, and where determining the snapshot 136 includes updating thesnapshot 136 to reflect operations from the communicated change value118; upon a lapse of a predetermined time period (calendar time, accesstime, and/or editing time); a lapse of a predetermined time period sincea last communication of the change value 118; upon a request from thesecond computing device 104 to update the snapshot 136; upon an initialoperation to open a document; upon an operation to close a document;upon a determination that a predetermined efficiency threshold isexceeded by determining the snapshot 136 (e.g. an estimated number ofoperations of the processor or number of operation commands can bereduced, upon certain types of operations that tend to yield highefficiency in a snapshot 136 such as repeated keys, filtering and/orsorting of data, etc.); upon an operation to save a document; upon anoperation to save a document as a new document; upon a request to accessa document related to the first operation log 108 from an additionalcomputing device beyond the computing devices already accessing thedocument; upon a change value 118 exceeding a predetermined amount ofchange; upon a change value 118 directed to a predetermined categoricalchange (e.g. a change of from a selected list of change types occurs);upon a loss of communication with the second computing device 104; upona reestablishment of communication with the second computing device 104;upon an operation to print at least a portion of a document related tothe first operation log 108; upon an operation to publish at least aportion of a document related to the first operation log 108; and/orupon a determination that determining and communicating the snapshot 136will not interfere with an operation of the second computing device 104on a document related to the first operation log 108 (e.g. the secondcomputing device 104 is idle and/or outside certain hours of operation).

An example first computing device 102 determines the snapshot 136 bydetermining a provisional snapshot 138, and determines whether theprovisional snapshot 138 is compatible with the second operation log116. In response to determining the provisional snapshot 138 iscompatible with the second operation log 116, the example firstcomputing device 102 over-writes the snapshot 136 with the provisionalsnapshot 138.

In certain embodiments, a snapshot 136 is created at an earlier point inan edited history of the document, for example with less than all of theoperations in: the operation log 108, the second operation log 132, thelocal operation log 116, the second local operation log 126, the changevalue 118, the second change value 128, and/or the updated change value134 applied. For example, a snapshot 136 event may occur indicating thata snapshot 136 is to be taken and/or is requested, where it is notdesirable that all of the operations in the system 100 (e.g. theoperations log 108 plus any operations reflected in the second operationlog 132, local operation log 116, the second local operation log 126,the change value 118, the second change value 128, and/or the updatedchange value 134) be applied. In certain embodiments, a user may desireto walk back some edits made and not have those edits stored in thesnapshot 136. Additionally or alternatively, the arbitration circuit 130may determine that one or more edits are conflicting operations thatcannot be resolved, or a user may indicate that a proposed or impendingoperation to resolve a conflict should not be applied. In certainembodiments, it may be desirable to restore the document to an earlierstate, where a previous snapshot 136 having that earlier state is notavailable (e.g. some desired edits have been made since the lastsnapshot 136). In certain embodiments, the first computing device 102determines operations within the operations log 108 consistent with thecondition indicating that not all operations are to be applied, andcreates a snapshot 136 in response to the partial operations log 108. Incertain embodiments, the first computing device 102 determines one ormore operations in the system 100 (e.g. the operations log 108, thesecond operation log 132, the second local operation log 126, the changevalue 118, the second change value 128, and/or the updated change value134) that are consistent with the condition indicating that not alloperations are to be applied (e.g. operations that do not applyundesired user edits), and creates the snapshot 136 in response to thoseconsistent conditions, while discarding or otherwise preservingseparately from the snapshot 136 those operations that are notconsistent with the condition indicating that not all operations are tobe applied. In certain embodiments, the operation log 108 may be “walkedback” (e.g. returned to a previous state) utilizing the provisionalsnapshot 138, a user “undo” operation, and/or through operations of thearbitration circuit 130 resolving conflicting operations. Additionallyor alternatively, the operation log 108 may be “walked back” via removalof certain operations in the creation of the snapshot 136 at an earlierpoint in the edited history of the document.

Referencing FIG. 74, an example first operation log 108 is depictedschematically. The example operation log 108 includes sufficientinformation to uniquely identify operations defining at least part ofthe document. The example operation log 108 describes an identifier forthe object of the edits (e.g., the “Value” column, which may be areference name or other object identifier), and/or a position within theobject hierarchy of the document (e.g., the “Parent” column, which maybe a reference name or other object identifier). In certain embodiments,the Value may be sufficient to uniquely identify objects, and a Parentvalue may not be necessary. In certain embodiments, multiple layers ofhierarchy may be provided, sufficient to uniquely identify operations inthe operation log 108. The example operation log 108 further includes aType value, such as a type of object subject to the operation, and/or anOperation value describing the operation performed (e.g., an insertion,addition, deletion, etc.). The example Operation Log 108 includesoperations such as insertions of text or values, formatting operations,addition or editing of columns and/or rows, and/or changes to objectproperties or metadata (e.g., a permissions change to a section of thedocument for a user). The illustrative organization of the operation log108, including the organization of the operation log 108 as a table, isa non-limiting example, and any organization of operations that providesfor an unambiguous operation location is contemplated herein. An exampleoperation log 108 can document operations at any resolution desired orselected—for example a user entry of a text sequence may be stored asindividual operations of each character, as an entire line of text,and/or with each word entry utilized as a separate entry on theoperation log 108. The selection of the resolution affects utilizationand resource consumption of the operation log 108, for example an “undo”operation that references the operation log 108 may operate to removecharacter-by-character if the operation log 108 stores character-wiseoperations. However, the storage of high resolution operations mayconsume greater resources in memory utilization (e.g., to store theindividual operations in the operation log 108). Additionally oralternatively, an “undo” operation can be configured to undo only aselected portion of an operation from the operation log 108, for exampleby parsing an operation into an applied and unapplied portion (andfurther creating a separate operation on the operation log 108reflecting the applied portion of the operation).

An example document may be constructed from the operation log 108, fromthe snapshot 136, and/or from the snapshot 136 updated by the operationlog 108. An example snapshot 136 includes operations in an operation log108 format, which may be a copy of the operation log 108 and/or asequence of operations configured to provide for the same resultingoutput but consolidated for efficient operation, reduced memory usage,and/or to reduce the size of the operation log 108. An example systemincludes the operation log 108 having a higher resolution of operations(e.g., character-wise, word-wise, and/or sentence-wise) than operationsin the snapshot 136 (e.g., word-wise, sentence-wise, and/orparagraph-wise).

In certain embodiments, certain data aspects related to the document maybe stored outside the operation log 108 and/or the snapshot 136. Incertain embodiments, certain data aspects are stored locally for aspecific user and/or a specific client computing device. An examplesystem includes one or more temporary and/or local values, such as acontrol object state (e.g., a slider bar value, a user preference,etc.), and the state of those objects may be deleted upon the userexiting the document, stored locally for the user and/or device in amanner inaccessible to other users of the document (e.g., outside theoperation log 108 and/or snapshot 136), and/or stored in a manneraccessible to other users of the document (e.g., within the operationlog 108, snapshot 136, and/or other data structure accessible to usersaccessing the document) and/or as a part of the document. In certainembodiments, data aspects associated with the document that may bedeleted or stored locally for a particular user and/or device may betermed local data, temporary data, cached data, and/or volatile data.The particular implementations for data aspects associated with thedocument described herein are non-limiting examples.

A number of procedures for performing certain operations to produce,communicate, and/or update an operation log 108, 116, 126, 132 aredescribed following. Operations are illustrative and non-limiting, andmay be re-ordered, divided, and/or combined in any manner to performsimilar functions, as will be understood to one of skill in the arthaving the benefit of the disclosures herein. In certain embodiments,one or more operations may be performed by components of a system suchas the system 100.

Referencing FIG. 2, a schematically depicted example procedure 200includes an operation 202 to receive a first operation log from a firstcomputing device, where the first operation log includes at least onefirst sequential operation defining operations to create a firstdocument, an operation 204 to create a first document view in responseto the first operation log, where the document view includes contentgenerated using at least a portion of the first operation log, and anoperation 206 to provide the first document to a display device. Theexample procedure 200 further includes an operation 208 to receive auser document change input value, and an operation 210 to create a localoperation log in response to the first operation log and the userdocument change input value, where the local operation log includes atleast one sequential operation defining operations to create a seconddocument. The example procedure 200 further includes an operation 212 toupdate the first document view in response to the user document changeinput value, and an operation 214 to communicate a change value for thefirst operation log to the first computing device in response to thefirst operation log and the local operation log.

Referencing FIG. 3, a schematically depicted example procedure 300includes one or more operations of procedure 200. The example procedure300 further includes an operation 302 to receive a second change valuefrom the first computing device, where the second change value includesat least one sequential operation to add to the first operation log, anddefines operations to create a third document, and an operation 304 tocreate a second local operation log in response to the first operationlog and the second change value. An example operation 304 includescreating the local operation log by creating a first record ofoperations which, if implemented on a document, would provide a documenthaving edits consistent with the user document change input value, andwhere creating the second local operation log includes creating a secondrecord of operations which, if implemented on a document, would providea document having edits consistent with the second user document changeinput value.

The example procedure 300 includes the operation 304 to create thesecond local operation log by applying non-conflicting operations of thelocal operation log and the second local operation log. The exampleprocedure 300 further includes an operation 306 to resolve conflictingoperations of the local operation log and the second local operationlog, where the operation 304 to create the second local operation logincludes the resolved conflicts from operation 306. Example andnon-limiting operations 306 to resolve conflicting operations of thelocal operation log and the second local operation log includeperforming one or more operations such as: applying individualoperations in a priority selected according to a time stampcorresponding to each operation; applying operations in a priorityselected according to a time stamp of the local operation log and secondlocal operation log; applying operations in a priority selectedaccording to an associated priority of at least one of a secondcomputing device receiving the user document change input value and athird computing device providing the second change value; applyingoperations in a priority selected according to an associated priority ofat least one of a user associated with a second computing devicereceiving the user document change input value or a user associated witha third computing device providing the second change value; and/orapplying operations in a priority selected according to a time ofcommunication of the operations to the first computing device.Additional or alternative example and non-limiting operations 306 toresolve conflicting operations of the local operation log and the secondlocal operation log include performing one or more operations such as:applying individual operations in a priority selected according to atype of at least one of the conflicting operations and/or applyingindividual operations in a priority selected according to a relationshipsuch as: a priority relationship between at least one of a secondcomputing device, a third computing device, and a user associated withone of the second and third computing devices; a priority selectedaccording to a reference region of a document that would be affected byat least one of the conflicting operations; a priority selected inresponse to a performance characteristic of at least one of the secondand third computing devices; a priority selected in response to anindicated importance value corresponding to at least one of theconflicting operations; and/or a priority selected in response to aconflict management difficulty value. Additional or alternative exampleand non-limiting operations 306 to resolve conflicting operations of thelocal operation log and the second local operation log include applyingindividual operations in a priority selected according to one or moreof: a number of operations represented in at least one of the localoperation log and the second local operation log; a document editingtime corresponding to at least one of the second computing device andthe third computing device; and/or one of a change amount and a changerate of a reference region of a document that would be affected by atleast one of the conflicting operations. Additional or alternativeexample and non-limiting operations 306 to resolve conflictingoperations of the local operation log and the second local operation loginclude applying individual operations in a priority selected accordingto computing devices having one or more characteristics such as: arecurrently accessing a reference region of a document that would beaffected by at least one of the conflicting operations; have recentlyaccessed a reference region of a document that would be affected by atleast one of the conflicting operations; are currently editing areference region of a document that would be affected by at least one ofthe conflicting operations; and/or have recently edited a referenceregion of a document that would be affected by at least one of theconflicting operations.

An example procedure 300 includes the operation 306 at least partiallyperformed on a first computing device, a second computing device, and/ora third computing device. An example procedure 300 includes theoperation 306 to resolve the conflict at least partially performed onthe second computing device, where the first computing devicecommunicates the second change value to the second computing device(e.g. through a third computing device and/or document server).

Referencing FIG. 4, a schematically depicted example procedure 400includes an operation 402 to communicate a first operation log, forexample from a first computing device to a second computing device and athird computing device, where the first operation log includes at leastone first sequential operation defining operations to create a firstdocument. The example procedure 400 further includes an operation 404 toreceive a change value for the first operation log from the secondcomputing device, where the change value includes at least onesequential operation defining operations to create a second documentincluding changes relative to the first operation log, and an operation406 to receive a second change value for the first operation log fromthe third computing device, where the second change value includes atleast one sequential operation defining operations to create a thirddocument including changes relative to the first operation log. Theexample procedure 400 further includes an operation 408 to communicatethe second change value to the second computing device, and an operation410 to receive an updated change value from the second computing device,where the updated change value includes a conflicts resolving changevalue (e.g. a change value based upon resolved conflicts) between thechange value and the second change value. Referencing FIG. 5, aschematically depicted example procedure 500 further includes anoperation 502 to communicate the updated change value to the thirdcomputing device. For example, a first operation log is partially orcompletely passed from a document server to each of a client computingdevice and a second client computing device. A first user incommunication with the client computing devices makes a number ofchanges to a displayed text (e.g. a local copy of the document 1106,from the perspective of the first user), and a second user incommunication with the second client computing device makes a number ofchanges to a displayed text (e.g. a local copy of the document 1106,from the perspective of the second user. The client computing devicedetermines a first change value in response to operations from the firstuser, and the second client computing device determines a second changevalue in response to operations from the second user. An examplearbitration circuit, which may be incorporated wholly or partiallywithin the client computing device, the second client computing device,the document server, and/or elsewhere, determines an updated changevalue from the first change value and the second change value—forexample the updated change value reflects all non-conflicting operationsof the user and second user, and/or reflects operations resolvedaccording to any change conflict resolution principles describedthroughout the present disclosure. In certain embodiments, thearbitration circuit produces the updated change value locally (e.g. atone of the client computing device and/or second client computingdevice), and passes the updated change value to the document serverand/or another one of the client computing devices. When the clientdevices have updated local operation logs from the updated change value,the client devices have synchronized the local views of the document1106. In certain embodiments, the document server (which mayadditionally or alternatively be one of the client computing devices)receives the updated change value, passes it to client device(s) (e.g.each client device currently accessing the document 1106), and updatesthe common server operation log (e.g. operation log 108) in response tothe client device(s) accepting the updated change value.

In certain embodiments, a procedure includes determining a snapshot, forexample updating the operation log 108 with a confirmed updated changevalue. It can be seen that the updated snapshot creates a document 1106equivalent to the document created by the operation log 108 with theconfirmed updated change value applied, for example the document 1106 asinitially provided to client device(s) and with edits from user(s)applied. The creation of a snapshot allows for management of documentdata and efficiency, for example by periodically grouping informationand calculations into a more efficient form (e.g. less data, fewerprocessor operations, better sorting such as improved sort order,application of data compression, etc.) than an operation sequence asentered by a user. An example procedure further includes providing thesnapshot as the operation log 108 (e.g. to a client computing deviceaccessing the document 1106).

Example operations include determining a snapshot, where the snapshotincludes at least one sequential operation defining at least one secondsequential operation, wherein the at least one second sequentialoperation, if executed, results in an equivalent document to the firstdocument (for example—operations of the operation log plus operations ofthe updated change value from operation 502). In certain embodiments,the procedure 500 includes providing the snapshot as the first operationlog. Example operations to determine the snapshot include providing thesnapshot in response to at least one event such as: the first computingdevice receiving the communicated change value, where the determiningthe snapshot further includes updating the snapshot to reflectoperations from the communicated change value; a lapse of apredetermined time period; a lapse of a predetermined time period sincea last communication of the change value; a request from a secondcomputing device; an initial operation to open a document; an operationto close a document; a determination that a predetermined efficiencythreshold is exceeded by determining the snapshot; an operation to savea document; an operation to save a document as a new document; a requestto access a document related to the first operation log from anothercomputing device; a change value exceeding a predetermined amount ofchange; a change value directed to a predetermined categorical change; aloss of communication between the first computing device and a secondcomputing device; a reestablishment of communication between the firstcomputing device and a second computing device; an operation to print atleast a portion of a document related to the first operation log; anoperation to publish at least a portion of a document related to thefirst operation log; and/or a determination that determining andcommunicating the snapshot will not interfere with an operation of asecond computing device on a document related to the first operationlog.

Referencing FIG. 6, a schematically depicted example procedure 600includes an operation 602 to determine if a snapshot event criteria istrue—for example whether the operating conditions of the system, localoperation log(s), current updated change values, and/or an elapsed timehas passed, such that determination of an updated snapshot is warranted.The example procedure 600 includes an operation 604 to perform ordetermine a snapshot of the operational log. Example and non-limitingoperations to perform the snapshot include: determining a secondsequential operation that includes fewer processor operations than thefirst sequential operation; determining a second sequential operationincluding fewer logical operations than the first sequential operation;determining the second sequential operation comprising a simplifieddescription of operations than the first sequential operation;determining the second sequential operation comprising lumped operationsrelative to the first sequential operation; and/or appending orotherwise combining operations of the confirmed updated change valueinto the operation log. In the provided examples, the first sequentialoperation is the state of the document before the snapshot, for examplethe operational log or previous version of the snapshot, plus theconfirmed updated change value, and the second sequential operation isthe updated snapshot, or the updated operational log after combinationwith the confirmed updated change value. The example procedure 600further includes an operation 606 to provide the snapshot as theoperational log.

Example and non-limiting operations 604 to determine if a snapshot eventhas occurred include: the first computing device receiving thecommunicated change value, wherein the determining the snapshot furthercomprises updating the snapshot to reflect operations from thecommunicated change value; a lapse of a predetermined time period; alapse of a predetermined time period since a last communication of thechange value; a request from a second computing device; an initialoperation to open a document; an operation to close a document; adetermination that a predetermined efficiency threshold is exceeded(e.g. an estimated or modeled improvement of processor operations,memory utilization, document size, and/or number or type of logicaloperations) by determining the snapshot; an operation to save adocument; an operation to save a document as a new document; a requestto access a document related to the first operation log from anothercomputing device; a change value exceeding a predetermined amount ofchange (e.g. a number of operations, an editing time value, and/oroperations of a specified type present in the change value); a changevalue directed to a predetermined categorical change (e.g. inclusion ofa sort, filter, data reference, and/or insertion of a table, graph,chart, etc.); a loss of communication between the first computing deviceand a second computing device; a reestablishment of communicationbetween the first computing device and a second computing device; anoperation to print at least a portion of a document related to the firstoperation log; an operation to publish at least a portion of a documentrelated to the first operation log; and/or a determination thatdetermining and communicating the snapshot will not interfere with anoperation of a second computing device on a document related to thefirst operation log.

Referencing FIG. 7, a schematically depicted example procedure 700includes an operation 702 to determine a provisional snapshot, anoperation 704 to receive an updated change value from the secondcomputing device, and an operation 706 to determine if the provisionalsnapshot is compatible with the updated change value. In response to theoperation 706 determining the provisional snapshot is compatible withthe updated change value, the procedure 700 includes an operation 708 toprovide the operation log as the provisional snapshot, for example toover-write the snapshot in response to the provisional snapshot, and/orto update the operation log in response to the provisional snapshot.

Referencing FIG. 26, a system 2600 includes a document server 2602 incommunication with a client computing device 2604. The document server2602 includes a document 2606, and communicates at least a portion ofthe document 2606 to the client computing device 2604 as a data element2608. The example data element 2608 and/or the document 2606additionally or alternatively include access to, and/or incorporationof, source data 2610. Incorporation of source data 2610 includes,without limitation, links to, references to, and/or calculated valuesdependent upon one or more aspects of the source data 2610.

The example client computing device 2604 further includes a user displaycircuit 2612 that interfaces with a user 814, for example providing afirst view 2618 to the user 814 in response to the data element 2608,for example to display an accessed portion of the document 2606 to theuser 814. An example data element 2608 includes a first table (e.g.reference 2702 on FIG. 27) and a second table (e.g. reference 2704 onFIG. 27). In certain embodiments, the second table 2704 is a linkedtable from the first table 2702, either present in the document 2606initially or created by the user 814. The example client computingdevice 2604 includes a data management circuit 2614 that interprets auser table selection value 2616, and determines one or both of a tabledata update 2622 and/or a table configuration update 2624 in response tothe user table selection value 2616. Example and non-limiting userselection values 2616 include rules for operating the first table 2702and the second table 2704 in response to user inputs, calculated dataupdates, data changes on one or more tables 2702, 2704, and/orconfiguration changes to one or more tables 2702, 2704. Configurationchanges include, without limitation, changes to the format of a tablecolumn, row, or data record (e.g. a cell within the table, including aheader cell), filtering options for the table, and/or sorting optionsfor the table. Example and non-limiting rules for operating the tables2702, 2704 include rules to manage table data in response to a change inone or both tables 2702, 2704, and rules to manage configuration changesin one or both tables 2702, 2704. The example user display circuit 2612updates a second view 2620 in response to the table data update 2622and/or the table configuration update 2624, for example to displayassociated changes to the user 814, including a portion of the changesvisible to the user 814 based upon the currently viewed area of thedocument 2606 by the user 814. The example data management circuit 2614additionally or alternatively updates data in the data element 2608and/or document 2606 in response to the changes implemented, subject,for example, to conflict resolution operations (see, e.g. the disclosurereferencing FIGS. 1 to 8).

Referencing FIG. 27, an example data view 2618 includes a first table2702 and a linked second table 2704. In the example, a link icon 2706 isprovided for convenient reference to the user 814 that the second table2704 is a linked table. The provision of a link notification to the useris a non-limiting example. In certain embodiments, for example whereonly certain data elements are linked, a link notification, if present,will be presented specifically near the linked data elements. In certainembodiments, activation of the link can return the user to the sourceinformation (e.g. the first table 2702), and/or moving the focus area tothe link (e.g. hovering the mouse cursor over the link notification) canpresent a preview, “card”, or other information about the sourceinformation. It will be understood that the second table 2704 may belinked to data from more than one other table (not shown), and theprinciples described with reference to the system 2600 apply to multipletable linkages, as well as other data linkage types, without limitation,such as a table to a graph, a table to a chart, a table to a prosedescription where the table represents a structured data view of one ormore aspects of the prose description, and combinations of these.Additionally or alternatively, where link notifications are present in amulti-linked object, a link notification can be distinct for one or moreof the multiple source information aspects. Similarly, the linked objectmay be any type of object, such as a “card”, a graph, and/or a chart.

The configuration changes between linked objects, and the rules forchange management between linked objects, may vary between objects andwithin an object. For example, a second table 2704 linked to a firsttable 2702 may have one set of rules for a first column and a second setof rules for a second column, and/or may have one set of rules for afirst type of operation (e.g. a format change, a specific type of formatchange, a deletion, a sorting operation, a filtering operation, etc.).Additionally or alternatively, a table linked to two objects may have afirst set of rules corresponding to the first object, and a second setof rules corresponding to the second object.

As an example, referencing FIG. 28, a second view 2620 (named a secondview 2620 as the second view 2620 depicted in the example is after useroperations, although the naming of a view as a first view 2618 or asecond view 2620 is provided for clarity of presenting viewssequentially, but a given view may be a first view 2618 or a second view2620 without limitation, depending upon the user operation or otherchange the view 2618, 2620 is compared to). In the example of FIG. 28, auser 814 has removed Col3 and Col4 at location 2802. The removal of thecolumns may be any type of operation, including hiding the columns,adding columns, deleting the columns, and/or moving the columns. In theexample of FIG. 28, removing columns in the second table 2704 does notremove the columns from the first table 2702. Additionally oralternatively, rules could allow removal of a column (or other elementsuch as a line, data series, bar, pie slice, or other aspect of anobject such as a graph or figure), and/or could allow removal of somecolumns or elements, but not of other columns or elements.

Referencing FIG. 29, an example second view 2620 is depicted in responseto further operations from the user 814. In the example of FIG. 29, theuser has amended a data value 2804 in Col5, changing it from “18” to“26” on the second table 2704. In the example, the rules between thefirst table 2702 and the second table 2704 propagate the changed valueto the first table 2702, such that the data value 2806 is similarlyupdated. Accordingly, in contrast with previously known systems, achange in the linked data can be propagated to the sourced data. It canbe seen that a user 814 can configure a link table (e.g. the secondtable 2704) for ease of review and editing, for example hidingextraneous columns, sorting and/or filtering the data, and editing theconfigured table thereby updating the source data. In the example ofFIG. 29, the user 814 has additionally updated the formatting for Col22808 by making the text in that column boldface type. In the example ofFIG. 29, the formatting change is not propagated to the first table2702. In certain embodiments, filtering operations, sorting operations,removal of rows and/or columns, and combinations of these, are notpropagated to the source data. In certain embodiments, one or more offiltering operations, sorting operations, removal of rows and/orcolumns, and combinations of these, are propagated to the source data.In certain embodiments, the data element 2608 includes source data 2610external to the document 2606, for example where the data element 2608includes source data 2610 on the document server 2602 but external tothe document 2606 (e.g., on a database or other document on the documentserver 2602), and/or where the data element 2608 includes source data2610 outside the document server 2602 (e.g., on a website, third-partyserver, and/or cloud location separate from the document server 2602).In certain embodiments, source information present on the first table2702 is at least partially located externally to the document 2606. Incertain embodiments, the first table 2702 and/or the second table 2704include information (e.g. one or more columns and/or rows) external tothe document 2606. Accordingly, a user 814 can read from, access, and/orwrite to information external to the document 2606.

Referencing FIG. 30, an example second view 2620 is depicted in responseto further operations from the user 814. In the example of FIG. 30, theuser has amended a data value 2902, for example changing the value from“M” to “Z.” In the example of FIG. 30, the change in the data value 2902in Col2 is not propagated to the first table 2702, and thus the datavalue 2904 remains at “M”. The example of FIG. 30 is consistent with,for example, Col2 being a protected column where changes are notpropagated to the source information, while Col5 is an editable columnwhere changes are propagated to the source information. The data value2902 in the example is depicted as “Z*”, for example where anotification is provided to the user 814 that a data value is blockedfrom propagation to the source information. In certain embodiments,other types of notification can be utilized, such as a format change, adifferent character than “*”, a prompt and/or warning to the user,and/or a confirmation check that a protected value is being adjusted,whereupon the data may be propagated to the source information if theuser 814 is authorized and/or confirms the change. In certainembodiments, the change to the data value 2902 is refused, and the datavalue 2902 is returned to the original value (e.g. “M” in the example).

In embodiments of the present disclosure, an object in a document mayallow a user to create multiple views of a common data source, withchanges made to the data being applied across all views in real time, oras periodically updated. In addition to copying and pasting tables indocuments, a user may have the option of “linking” a new table (or otherobject) to one or more existing table (or objects). On creation, alinked object may appear to be a copy of the source object. For anexample table, the column and row layout of the linked table may appearthe same as the source, and its data may appear the same. Next to thetitle of the table/object, or elsewhere, there may be an icon indicatingthe created table/object is a linked table/object. An example includesthe user changing the appearance of a linked table, for example, byhiding or grouping columns, without impacting the view of the sourcetable. In this way, linked objects and the source objects may offerunique, separate experiences for users. The data inside the linkedtable/object, however, may be something different than a cloned copy ofthe source, and may show a user the same underlying data from the sourcetable/object. If a user changes the data in either the linked data orthe source data, the data may be written through in real-time acrossboth places. In this way, the data in a linked table/object does notbecome out-of-sync with the source table/object, and a user may createmultiple linked tables/objects to a source table/object. In embodiments,this approach may be used to show multiple views of the same datawithout being limited to a copy or clone of the source data. Further,changes to data in one view may instantly take effect in all other viewsof the data in other, linked tables, and secondary views of linkedobjects may be laid out differently without impacting other views.

In certain embodiments, an update in accessed data (e.g. source data2610) provides for a change in the document 2606 and/or data element2608. For example, where a source data 2610 is an external data set suchas a web page or database external to the document 2606, a periodic,selected, and/or continuous update operation by the document server 2602pulls in the updated data and updates corresponding elements of thedocument 2606 that utilize the external data set. In certainembodiments, a document 2606 template includes external data to beutilized, and the data is brought in from the source data 2610 at thetime of the document creation.

In embodiments of the present disclosure, views may be provided as afilter and/or as a form of report. Views used as a filter may depict thesame layout of the source object (e.g. a table), but with a differentsubset of the data (e.g. a filter applied). Views that are used as aneditable report may each have different layouts, conditional formatting,and so forth, in addition to viewing a different subset of the data. Inembodiments, views may be placed into a drop-down menu. A default viewmay be presented that shows the source object to which each linkedobject refers. When a document is reloaded, the view selectors fortables may be populated by any method, including loading a default view,reloaded according to previous usage from the user, and/or according toupdates saved in the document defining the view selectors. Inembodiments, view definitions may be provided that are collaborativeacross individuals, for example, on a project team, but a currentlyselected view by any team member may differ from that of other teammembers. For example, two users could be looking at the same table indifferent views but any changes they made to the definition of that viewwould be shared with everyone depending on the rules associated with theviews and/or authorizations of those users. In embodiments, alock/unlock views functionality may be provided, so that if a given viewwas locked, a user would unlock it (if authorized) before changing theview settings (e.g., the grouping, filter, etc.). Additionally oralternatively, the user display circuit 2612 provides a user 814 with analert in response to a change in a data value, and/or in response toanother user unlocking a view. The user 814 can configure tables orother objects for alerts (e.g. adding an alert tag), and/or an alert maybe automatically provided as a property of the object and/or document.The user 814 can additionally or alternatively configure the alert—suchas providing for a tag in the document observable when the user 814accesses the document, and/or by receiving an external message (e.g., ane-mail, text, or the like) outside of the document alerting the user 814that data has been changed and/or unlocked. In certain embodiments, achange in the data may occur due to an update from the source data 2610,and the user display circuit 2612 provides the user 814 with an alertthat the data has been updated.

Referencing FIG. 62, an example system 6200 includes a document server6202 communicatively coupled to at least one client computing device6204. The example system 6200 further includes a document 6206. Theexample document 6206 includes a document 6206A on the document server,a document 6206B on a first client computing device 6204, and a document6206C on a second client computing device 6212. The documents 6206A,6206B, 6206C may include portions of the document 6206, all of thedocument 6206, and/or may comprise a logical grouping of elements thatcollectively form the document 6206. In certain embodiments, thedocuments 6206A, 6206B, 6206C may be the same document 6206 and/or beconsistent with each other, and/or may intermittently and/orcontinuously have variances, such as local and/or user-specificvariables, views, and/or edits that have not yet been synchronizedtherebetween. Additionally or alternatively, an updated document 6206Dis an example document 6206—for example where the updated document 6206Dis created in response to synchronization and/or optimizationoperations.

An example system 6200 further includes one or more workflow servers6236. Example and non-limiting workflow servers 6236 include one or morecomputing devices having processing resources, associated memory, and/orcommunications to the document server 6202. In certain embodiments, thedocument server 6202 allocates one or more operations of any systemsand/or procedures herein to be performed at least partially on aworkflow server 6236. In certain embodiments, the document server 6202allocates supporting operations to a workflow server 6236—for examplewhere operations requested according to multiple users and/or formultiple documents include certain common aspects (e.g., downloadingbulk information from an external data source 6226, indexing and/orquerying operations to a large data set at least partially sharedbetween documents, etc)—where the specific operations performed by theworkflow server 6236 are either direct operations and/or procedures asdescribed in the present disclosure, and/or where specific operationsperformed by the workflow server 6236 are a superset of operations(e.g., shared between a number of documents and/or user operations),precursor operations, preparatory operations (e.g., to supportutilization of an external data source 6226 added to the system 6200,which may or may not be specifically utilized by a document at the timepreparatory operations are performed) such as downloading, indexing,sorting, and/or filtering data from an external data source 6226, and/orform a portion of one or more operations or procedures according to thepresent disclosure. In certain embodiments, the document server 6202brings one or more additional workflow servers 6236 online to supportoperations currently being performed. In certain embodiments, thedocument server 6202 balances operations and/or procedures herein acrossthe document server 6202, one or more workflow servers 6236, and/orclient devices according to the current workload of the system 6200,desired responsiveness of client devices, current selections by a user(e.g., requesting that a processing, memory, or communication burden ona client device be reduced), a current type of client device in use(e.g., a powerful client device such as a workstation, a light clientdevice such as a laptop, and/or a thin client device such as a mobiledevice, tablet, mobile phone, etc.), a nature of operations orprocedures currently being performed (e.g., high utilization operationssuch as nested queries, indexing, etc.), and/or a connectivity of one ormore devices in the system 6200. The described operations to balanceworkloads across devices of the system 6200 are non-limiting examples.

Referencing FIG. 63, an example document 6206 includes an operation log6208, where the operation log 620 includes a record of sequentialoperations defining operations to create data values 6304 of thedocument 6206. For example, as a user edits a document, the operationsto implement the edits are stored on the operation log 6208. Eachcomputing device accessing the document 6206, for example the documentserver 6202 and one or more client computing devices 6204, 6212, mayhave a version of the operation log 6208, and/or a local copy of theoperation log 6208. In certain embodiments, the client computing devices6204, 6212 and/or the document server 6202 include arbitration circuits6210A, 6210B that coordinate updates between the operation logs 6208 toensure that applied edits are consistent. The data values 6304 of thedocument 6206 include, without limitation, text flows, data entries,and/or formula entries in the document 6206. In certain embodiments,data values 6304 of the document 6206 are stored, additionally oralternatively, in one or more tables (e.g., a document definition table6314) representing the data values 6304 and/or layout of the document6206. An example system 6200 includes a table representing data values6304 in the document 6206, and an operation log 6208 including editssince the last version of the table. Additionally or alternatively, thetable representing the data values 6304 may be updated, and appropriateelements of the operation log 6208 removed to ensure the application ofthe operation log 6208 to the current state of the table provides thedocument 6206 consistent with the current state of the document 6206.Additionally or alternatively, a system 6200 includes creating asnapshot 6312—for example a consolidated operation log 6208 and/or tablerepresenting data values 6304. Example operations to create a snapshot6312 include providing operations that produce equivalent operations tothe operation log 6208 prior to the creation of the snapshot 6312, andmay further include consolidating operations, providing operations thatutilize fewer system resources (e.g., processing cycles, memoryutilization, and/or communication bandwidth between devices 6202, 6204,6212). In certain embodiments, the snapshot 6312 is produced aftersynchronizing operation logs 6208. In certain embodiments, for examplewhere a client computing device 6204, 6212 accesses the document 6206,the snapshot 6312 is provided as the operation log 6208, and/or inconjunction with the operation log 6208 (e.g., where the operation log6208 includes additional operations occurring after the creation of thesnapshot 6312).

The example system 6200 includes a formula engine 6302, which may be apart of the document 6206 and/or provided separately from the document6206. In certain embodiments, the formula engine 6302 is provided as apart of a unified document surface application circuit 6216—for examplea first instance of the unified document surface application circuit6216A on the first client computing device 6204 and a second instance ofthe unified document surface application circuit 6216B on the secondclient computing device 6212. The example formula engine 6302 determinesa calculation definition 6306 in response to at least one formula 6308of the document 6206. A calculation definition 6306, as used herein,includes operations to determine formulas, look-up values, referencevalues, and the like within the document 6206. An example calculationdefinition 6306 includes pseudo-code, dependency descriptions,invalidation descriptions, operations to be performed to resolvequeries, references, and/or formulas, and any other operations performedto implement the document and provide visible results of the document toa user. In certain embodiments, the calculation definition includesrequirements for operations for an executable model. Additionally oralternatively, the calculation definition is implemented in code,scripts, and/or relationship information between data values within thedocument, and/or includes instructions implementable in code, scripts,or the like. In certain embodiments, any information that at leastincrementally informs a formula, query, and/or reference set, or otheraspects of the document, toward building executable code to perform theoperations of the formulas, queries, and/or reference look-ups iscontemplated within the meaning of a calculation definition as usedherein.

In certain embodiments, the formula 6308 is provided as a part of thedata values 6304 of the document 6206, and/or the formula 6308 isprovided on the operation log 6208. The example system 6200 includes adocument object model 6309, where the document object model 6309includes an object definition 6310 corresponding to each of a number ofobjects 6320 in the document 6320. The example document object model6309 is depicted on the document 6206, but may additionally oralternatively be provided as a part of a unified document surfaceapplication circuit 6216, and/or provided by the document server6202—for example when a client computing device 6204, 6212 accesses thedocument 6206. In certain embodiments, the document object model 6309 isupdated in real time, for example with the addition of applicableobjects 6320 into a document 6206, and/or as a part of an update of thesystem 6200. An example document object model 6309 includes objectdefinitions 6310 for utilized objects 6320 in the document 6206, for allpossible objects that are utilizable in the document 6206, and/or for apredetermined set of possible objects, where additional objectdefinitions 6310 are available upon utilization and/or request. Exampleobject definitions 6310 include a hierarchy of objects in a document6206, properties, methods, and/or events available to objects,modifications to objects for the particular system 6200 and/orimplemented by a user, inheritance of properties between objects, newobject classes created by a user, administrator, document template, orthe like.

An example document 6206 is at least partially positioned on at leastone of the document server 6202 and a first client computing device6204. An example system 6200 includes a first version of the document6206A positioned on the document server 6202, a second version of thedocument 6206B positioned on the first client computing device 6204, andwhere the first client computing device 6204 includes the arbitrationcircuit 6210A that synchronizes the first version of the document 6206Aand the second version of the document 6206B, thereby creating anupdated document 6206D. An example system 6200 further includes a secondclient computing device 6212, where a third version of the document6206C is positioned on the second client computing device 6212, andwhere the arbitration circuit(s) 6210A, 6210B are further structured tosynchronize the first version of the document 6206A, the second versionof the document 6206B, and the third version of the document 6206C,thereby creating the updated document 6206D. In certain embodiments, thedocument 6206 includes the snapshot 6312 and/or a document definitiontable 6314, where the snapshot 6312 and/or the document definition table6314, combined with the operations of the operation log 6208, provide adefinition of data values 6304 of the document 6206.

An example system 6200 includes the document 6206 further including thesnapshot 6312 and/or the document definition table 6314, where thedocument server 6202 further includes a document consolidation circuit6214 that updates the snapshot 6312 and/or the document definition table6314. Example and non-limiting operations of the document consolidationcircuit 6214 include any operations of the systems and procedures of theportion of the disclosure referencing FIGS. 1 through 7 and FIG. 62. Anexample updated snapshot 6316 includes sequential operations defining atleast one second sequential operation, wherein the at least one secondsequential operation, if executed, results in a consolidated document6206 equivalent to the document 6206 before updating the snapshot 6312.An example and non-limiting updated snapshot 6316 includes at least oneof: the second sequential operation including fewer processor operationsthan the first sequential operation; the second sequential operationincluding fewer logical operations than the first sequential operation;the second sequential operation including a simplified description ofoperations than the first sequential operation; and/or the secondsequential operation comprising lumped operations relative to the firstsequential operation. An example document consolidation circuit 6214further clears the operation log 6208 and/or reduces operations in theoperation log 6208 in response to the updated snapshot 6316—for examplemoving certain operations from the operation log 6208 to the updatedsnapshot 6316, and leaving other operations in the operation log 6208.Example and non-limiting considerations for determining to leaveoperations in the operation log 6208 include leaving un-synchronizedand/or conflicting operations (e.g., between a number of users and/orclient computing devices) in the operation log 6208, moving only aportion of the operations to reduce a computation time of the updatedsnapshot 6316, and/or leaving certain types of operations in theoperation log 6208 and moving other types of operations to the updatedsnapshot 6316.

An example system 6200 includes the document 6206 further including thedocument definition table 6314, and where the document server 6202further includes the document consolidation circuit 6214 updating thedocument definition table 6314, where the updated document definitiontable 6318 includes the document definition table 6314 having at least aportion of the first sequential operation(s) applied thereto. Forexample, certain operations of the operation log 6208 may be applied tocreate the updated document definition table 6318, and certain otheroperations of the operation log 6208 may be left in the operation log6208 and/or moved to an updated snapshot 6316. In certain embodiments,the snapshot 6312 and/or updated snapshot 6316 includes the documentdefinition table 6314 and/or the updated document definition table 6318.In certain embodiments, multiple versions of the operation log 6208,snapshot 6312, and/or document definition table 6314 may be stored inthe system 6200, for example allowing recovery of previous versions orstates of the document 6206 and/or any document objects 6320 therein,allowing for queries to previous versions or states of the document 6206and/or any document objects 6320 therein, and/or allowing for changetracking and/or version control of the document 6206. An example system6200 further includes the document consolidation circuit 6214 performingat least one of clearing the operation log 6208 and reducing theoperation log 6208 in response to the updated document definition table.Example and non-limiting considerations for determining to leaveoperations in the operation log 6208 include leaving un-synchronizedand/or conflicting operations (e.g., between a number of users and/orclient computing devices) in the operation log 6208, updating thedocument definition table 6314 to move only a portion of the operationsto reduce a computation time of the updated document definition table6318, and/or leaving certain types of operations in the operation log6208 and applying other types of operations to the updated documentdefinition table 6318.

In certain embodiments, the document object model 6309 includes ahierarchical object structure, and further includes objects 6320 of thedocument associated consistent with the document object model 6309. Anexample hierarchical object structure includes, in descending order, adocument object (e.g., an object at the document 6206 level), a canvasobject, a section object, and/or a table object. In certain embodiments,objects can be ordered in any parent-child relationship of objects. Anexample document object model 6309 further includes the names (e.g.,reference names, display names, primary key, and/or referenceidentifying information), and/or further includes associations andrelationships between document objects 6320. In certain embodiments, thedocument object model 6309 is included on, in whole or part, theoperation log 6208, the snapshot 6312, and/or the document definitiontable 6314. In certain embodiments, instances of document objects 6320,consistent with the document object model 6309 and/or modified by auser, administrator, and/or rules such as in document template rules,are stored on, in whole or part, the operation log 6208, the snapshot6312, and/or the document definition table 6314. Referencing FIG. 63, anexample document object model 6309 is depicted illustrating examplerelationships between document objects 6320 in an example document 6206.An example hierarchical object structure further includes objects suchas: a range object (e.g., allowing for referencing of grouped datavalues 6304 or objects 6320 such as portions of a text flow, cellswithin a table, and/or a group of tables), a text object, a line object(e.g., a sentence, line of text, formula or portion of a formula, etc.),a span object (e.g., a sentence, a paragraph, text in a table cell,etc.) and/or a tag object (e.g., allowing for automatic and/or selectedlabeling of features or objects 6320, providing the ability to referencethem together—such as bold text, pivot table, and/or an arbitraryreference such as “Tag1”).

An example system 6200 includes the hierarchical object structurefurther providing a scope definition 6322 corresponding to each of theobjects 6320 of the document. An example scope definition 6322 includesa data scope value (e.g., providing for local variables, globalvariables, and/or selected scope variables such as “canvas”, “sheet”,“table”, or the like); a referencing scope value (e.g., providing forreference name uniqueness scoping, such as table names, canvas names,sheet names, tag names, and/or any other object names; where names canbe display names, reference names, primary keys, and/or anotheridentifier for an object); a formula scope value (e.g., providing forselected scope of formula reach, reference ability, and/or uniquenessenforcement); a scope depiction value (e.g., defining how scope valuesare communicated, displayed, and/or provided to the user); and a scopeconfigurability value (e.g., defining rules by which the user,administrator, and/or any system 6200 component can change, update,and/or vary any scope value or scope definition 6322 in the document6206). In certain embodiments, the scope definitions 6322 are accessibleto the user (e.g., in a system table) and/or may be constrained oramendable by the user, an administrator, any component of the system6200, and/or may be amended in response to operations of the user (e.g.,where a user enters a locally non-unique table name, an example system6200 updates the scope definition 6322 to provide a unique identifierfor the tables such as a primary key, and updates the scope definition6322 to allow for the operations by the user). In another example, thescope definitions 6322 are enforced, operations to enforce the scopedefinitions 6322 include prompting a user in response to an invalidentry, applying a change to the user invalid entry (e.g., adding acharacter such as a sequential numeric character to a user entry thatwould otherwise not be compliant with the scope definition 6322).

An example formula engine 6302 further includes an environmentdefinition circuit 6324 that interprets at least one environmentvariable 6326, and the first client computing device 6204 includes aunified document surface application circuit 6216A that, at leastselectively, provides a document view 6218 including the at least oneenvironment variable 6326. Example and non-limiting environmentvariables 6326 include a user location value, an offset user documentaccess indicator (e.g., a notification to the user that another user isaccessing the document; a display operation on the document when anotheruser is editing the document at the display location or anotherlocation; and/or a list of at least some of the users currentlyaccessing the document); a user focus value (e.g., an object identifier,document location, and/or current operation being performed by theuser); and/or a system time value (e.g., a time of day, calendar date,etc.). In certain embodiments, the environment variable 6326 isaccessible to the system 6200, for example to determine contextualinformation about the user for performing certain operations describedthroughout the present disclosure, and/or to provide the environmentvariable 6326 and/or information determined in response to theenvironment variable 6326 to the user—such as in completing formulas,suggesting reference values, and/or displaying options to the user inany context. An example unified document surface application circuit6216A further includes a formula assistant circuit 6219A that exposesthe environment variable(s) to a formula editor 6220. An example system6200 includes a user interacting with a formula editor 6220—for examplemaking an intentional selection to open the formula editor 6220 and/orperforming an operation where the formula editor 6220 is contextuallyopened for the user—and wherein the formula assistant circuit 6219Aexposes the environment variable(s) 6326 to the formula editor 6220 tomake the environment variable(s) 6326 available for display—such as:options for completing an entry by the user; as all or a part of anavailable property, method, event, or the like for an object 6320;and/or as a reference value accessible to the user.

An example system 6200 further includes the unified document surfaceapplication circuit 6216A, 6216B further including an authorizationcircuit 6222A, 6222B that interprets an external data source request6224, and provides an access to an external data source 6226 in responseto the external data source request 6224. In certain embodiments, theauthorization circuit 6222A, 6222B prompts a user for authorizationinformation (e.g., a username, login ID, password, etc.) and/or accessesauthorization information accessible to the document, system, a clientcomputing device, the document server, or the like. Accordingly, theuser can access external data sources 6226 according to availablepermissions specific to the user, entered into a document for use duringa project, according to a subscription where the subscriptioninformation is entered into the document, document server, clientcomputing device, or otherwise within or accessible to the system. Anexample authorization circuit 6222A, 6222B further stores anauthorization token corresponding to the external data source 6226 inthe document 6206, where the authorization token includes at least oneaccess value such as: an access type (e.g., read operations, editoperations, write operations, and/or delete operations); an access scope(e.g., accessible portions of the external data source 6226, includingdifferential access types according to the portion of the external datasource 6226); an access duration (e.g., a session duration of access,applicable calendar time of access, allowed access times for operationsto access the external data source 6226 and/or portions thereof,including differential times for certain access types and/or portions ofthe external data source 6226); and/or expiration values for theauthorization token); and/or an access reauthorization time value (e.g.,a time to prompt the user for reauthorization, an expiration time for asession, subscription, or the like, and/or expiration values for theauthorization token). An example authorization circuit 6222A, 6222Bprovides access to a second user in response to the authorization tokenand the access scope. It can be seen that the operations of theauthorization circuit 6222 provide for convenient authorization ofaccess to external data sources 6226 for one or more users of thedocument, while providing for security and scheduled access to theexternal data source 6226. Additionally or alternatively, anadministrator, document owner, and/or a user can extend access ifpermitted to other users of the document in a scheduled manner.Additionally or alternatively, a user does not need to know the detailsof accessing the external data source 6226, such as calling and engagingAPIs for the external data source 6226. The example authorizationcircuit 6222 provides for a configurable front-end for the user toaccess external data sources 6226 having only limited information toprovide authorization, such as login information to the external datasource 6226, to the document 6206, and/or as determined according toinformation about the user (e.g., role, employee identification, useridentification, associated project authorizations, etc.) accessible tothe system 6200. Example and non-limiting external data sources 6226include any external data source, external source data, and/or sourcedata described throughout the present disclosure.

An example system 6200 further includes the unified document surfaceapplication circuit 6216 interpreting a user comment value 6234, andproviding a document view 6218 including the user comment value 6234. Anexample unified document surface application circuit 6216 interprets auser review value 6232, and provides a table view of at least one usercomment value 6234 in response to the user review value 6232. Forexample, one or more users collaborating on a document 6206 provide usercomment values 6234 to the document 6206, and a user enters the userreview value 6232 to provide a display of comments, to flag or highlightcomments, and/or to provide a display of comments having a specific tag,from specific users, related to a particular project, and/or provided toselected document sections and/or objects. An example document objectmodel 6309 further includes a comment object type, where the unifieddocument surface application circuit 6216 is further structured toassociate the user comment value 6234 with the comment object type. Anexample system 6200 allows for utilization of the comment object type torapidly access comments, reference comments (e.g., in a formula 6308,report, compilation into a table, etc.), manipulate or amend comments,aggregate comments (e.g., by including user comments according to thecomment object type in a pivot table), and/or to relate comments toobjects within the document. Additionally or alternatively, an examplesystem 6200 provides for notifications and/or alerts in response to theentry of a user comment value 6234, including notifications and/oralerts as described throughout the present disclosure, including withoutlimitation to the disclosure referencing FIGS. 34 to 36.

Referencing FIG. 64, an example system 6400 includes a document server6402 communicatively coupled to at least one client computing device6204, 6212, and a document 6406 including an operation log 6208, wherethe operation log 6208 includes at least one first sequential operationdefining operations to create data values 6304 of the document. Theexample system 6400 further includes a formula engine 6302, where theformula engine 6302 determines a calculation definition 6306 in responseto at least one formula 6308 of the document 6206, and where the formulaengine 6302 generates an executable object 6502 (e.g. reference FIG. 65)in response to the calculation definition 6306. In certain embodiments,the document 6406 includes the executable object 6502, and/or theexecutable object 6502 is stored on the document server 6402 and/or aclient device 6204, 6212 and accessible at run-time in relation to thedocument 6406. The example system 6400 includes the document 6406 atleast partially positioned on the document server 6402 and/or a firstclient computing device 6204. In certain embodiments, the document 6406includes the executable object 6502 during run-time operations of thedocument server 6402 and/or a client device 6204, 6212.

An example formula engine 6302 further deletes the executable object6502 in response to a close operation of the document 6406 on the clientcomputing device 6204—for example in a system 6400 where the executableobject 6502 is created at run-time for the document 6406. An exampleformula engine 6302 further generates the executable object 6502 inresponse to an open operation of the document 6406 on the clientcomputing device 6204—for example in a system 6400 where the executableobject 6502 is created at run-time for the document 6406. In certainembodiments, the formula engine 6302 further caches the executableobject 6502 in response to a close operation of the document 6406 on thefirst client computing device 6204—for example to save the executableobject 6502 for potential re-use during a later run-time operation ofthe unified document surface application circuit 6216 on the document6406. An example formula engine 6302 further accesses the cachedexecutable object 6504 in response to an operation of the document 6406on the client computing device 6204, and/or the formula engine 6302verifies the cached executable object 6504 in response to the openoperation of the document 6406 on the client computing device 6204. Theverification of the cached executable object 6504 includes determiningwhether edits to the document have occurred since the cached executableobject 6504 was created, and whether the edits made allow for theutilization of all or a portion of the cached executable object 6504.

In certain embodiments, the executable object 6502 is an executioninstruction to implement operations of the document 6406, includingqueries, reference values, calculations, and the like. The executableobject 6502 may be implemented as a script operating within anenvironment on the client computing device 6204, 6212, such as aJavaScript object operating in a browser or other executing environment,although any scripting language or element, any computing language,and/or any executing environment, are contemplated herein. In certainembodiments, the executable object 6502 is determined from the datavalues 6304 in the document 6406, such as described in the operation log6208, snapshot 6312, and/or document definition table 6314. Theinclusion of the executable object 6502 on a client device 6204, 6212provides for a responsive document access experience for the user, aswell as the full power of features available to the user even where theuser may be working offline or with intermittent connectivity. However,it will be understood that the provision of the executable object 6502on the client device may tax the resources of certain client devices,and/or provide for a longer open time of a document having a largenumber of formulas, queries, and other active elements implementedthrough the executable object 6502. Accordingly, in certain embodiments,certain aspects, or all aspects, of the executable object 6502 may beprovided by the document server 6402 and/or stored on the documentserver 6402. Certain considerations for the generation, position in thesystem, and/or storage of the executable object 6502 include the type ofclient device, the resources of the client device, a preferenceexpressed by the user, and/or observed response times of the clientdevice accessing the document, editing the document, and/or opening thedocument.

In certain embodiments, the creation of the execution object 6502 isdescribed as the hydration of one or more aspects of the document 6406.For example, a formula 6308 within the document that specifies a query,but where the executable object 6502 does not yet include operations toperform the query, may be an “unhydrated” formula 6308. After theexecutable object 6502 is updated to include operations to perform thequery, the formula 6308 may be a “hydrated” formula 6308—for exampleeven where the operations of the query have not yet been performed andthe returned values have not yet been determined or updated. Theutilization of terminology such as “hydrated” is a non-limitingillustration, and any terminology, and/or any systems, methods, orprocedures implementing described operations herein, without referenceto any particular terminology, are contemplated for example embodiments.

An example system 6400 includes a second client computing device 6212,where the document 6406 is further positioned [on?] the document server6402 (document 6406A), the first client computing device 6204 (document6406B), and/or the second client computing device 6212 (document 6406C).The example system 6400 includes a first executable object 6502 storedon the first client computing device 6204, and a second executableobject stored 6502 stored on the second client computing device 6212. Itcan be seen that the same document 6406 may have separate executableobjects 6502 stored on separate devices accessing the document 6406—forexample to reflect context variables within formulas, queries, etc. thatdiffer between devices (e.g., current user, system time, user location,user focus location, predicted second user focus location, etc.), toreflect differential edits on the client devices 6204, 6212 that havenot yet been synchronized or reconciled, and/or to reflect localsettings of objects within a document (e.g., controls, run-timeselections, and/or other volatile settings that are local to the clientdevice 6204, 6212, the user, and/or are cleared upon a close operationof the document 6406).

An example executable object 6502 includes instructions which, uponexecution, cause the document server 6402, a client computing device6204, 6212, and/or a workflow server 6236 to perform operations inresponse to the calculation definition 6306 (e.g., operations tocalculate formulas, look up reference values, and/or perform queries).Example executable objects 6502 include, without limitation: anexecutable instruction object; a script object; a javascript object;and/or a Perl object. An executable object 6502 may be operated withinan application environment (e.g., as a script), and/or may includeassembly code, compiled code, or other executable elements. The examplesystem 6400 includes workflow server(s) in communication with thedocument server 6402, and where the executable object 6502 furtherincludes instructions which, upon execution, cause at least one of thedocument server 6402, the client computing device 6204, 6212, and/or aworkflow server 6236 to perform operations to provide a result value inresponse to the calculation definition. For example and withoutlimitation, result values include filtered table values, sorted tablevalues, query results, formula results, and/or objects created inresponse to a formula, control setting, and/or object configurationand/or selection values. An example client computing device 6204, 6212includes a unified document surface application circuit 6216 thatprovides a document view 6218 in response to the data values 6304 of thedocument and the result value of the executable object 6502. An exampleunified document surface application circuit 6216 provides the documentview 6218 in response to a current user location or focus within thedocument 6406, such as displaying the result values within theobservable region of the document 6406 by the user. An example document6406 further includes a document object model 6309, where the documentobject model 6309 includes an object definition 6310 corresponding toeach of a number of objects 6320 in the document 6406, and where theexecutable object 6502 further references the document object model6309.

Referencing FIG. 66, an example formula engine 6302 further constructs adependency graph 6604 of the document 6406 in response to the executableobject 6502, the document model 6309, and/or the data values 6304 of thedocument. For example, the formula engine 6302 constructs the dependencygraph 6604 to determine dependency relationships within objects, datavalues, and/or formulas within the document 6406. The utilization of thedependency graph 6604 provides for a determination of a change in anobject, data value, and/or formula that may indicate that the executableobject 6502 should be recalculated, and/or that the executable object6502 should be operated again to determine updated result values. Anexample client computing device 6204, 6212 further includes the unifieddocument surface application circuit 6216 further interpreting a useredit value 6602, and where the formula engine 6302 further updates theexecutable object 6502 in response to the user edit value 6602 and thedependency graph 6604. In certain embodiments, other changes distinctfrom a user edit value 6602, such as updates in referenced data,external data, and/or environment variables 6326, similarly include theformula engine 6302 updating the executable object 6502 and/or resultvalues in response to those changes. An example dependency graph 6604includes a virtual conceptualization of dependency relationshipsbetween: elements of the data values 6304 of the document; elements ofthe calculation definition 6306; elements of document objects 6320; andcombinations thereof.

Referencing FIG. 67, an example dependency graph 6604 is depicted,showing dependency relationships between data values 6304 and formulas6308. For example, data value D 6304 is dependent upon data value B 6304and data value A 6304. In the example, the dependency graph 6604 allowsfor the determination of potentially affected elements in response to achange in an element on the dependency graph 6604. It will be understoodthat a dependency relationship does not mean that a dependent value willactually change—for example if the formula A 6308 returns a TRUE orFALSE value depending upon the value of data value A 6304, then a changein the data value A 6304 may result in a change in the data value B6304, or no change in the data value B 6304.

An example formula engine 6302 further constructs an invalidation graph6606 in response to the dependency graph 6604, the data values 6304 ofthe document 6406, and/or the calculation definition 6306. In certainembodiments, utilization of only the dependency graph 6604 to propagatechanges, recalculation of result values, and/or regeneration of theexecutable object 6502 may result in more calculations than are needed,and/or redundant calculation operations. An example invalidation graph6606 provides a virtual conceptualization of elements such as resultvalues, data values, and/or objects, wherein calculations for thoseelements are no longer deemed valid based on changes in predecessorelements. An example unified document surface application circuit 6216interprets a user edit value 6602, and the formula engine 6302 furtherupdates the executable object 6502 in response to the user edit value6602 and the invalidation graph 6606. In certain embodiments, otherchanges distinct from a user edit value 6602, such as updates inreferenced data, external data, and/or environment variables 6326,similarly include the formula engine 6302 updating the executable object6502 and/or result values in response to those changes.

An example formula engine 6302 further pares a redundant aspect of theinvalidation graph 6606 and/or a duplicative aspect of the invalidationgraph 6606. For example, referencing FIG. 68, an invalidation graph 6606consistent with the dependency graph 6604 is depicted. The invalidationgraph 6606 is organized with a first value in the first column, andvalues in a second column within the document 6406 that are no longervalid after the change in the first value. It can be seen that therelationships within the invalidation graph 6606 do not require tracingthrough the entire dependency graph 6604 in response to a change in avalue, and can therefore enable more efficient updating of result valuesand/or the executable object 6502 than the use of the dependency graph6604 alone. The organization of the invalidation graph 6606 isnon-limiting, and any virtual conceptualization of invalidation checksfor the document 6406 are contemplated herein. Referencing FIG. 107, apared invalidation graph 6606 removes certain redundant invalidationchecks, yet still provides for sufficient invalidation checks accordingto the dependency graph 6604 of FIG. 68. For example, a check of datavalue B in response to a change in data value A is redundant, as datavalue A affects data value B through the operation of formula A.Therefore, a redundant check is eliminated in the pared invalidationgraph 6606 depicted in FIG. 107. Referencing FIG. 69, yet another paredinvalidation graph 6606 is depicted, removing certain duplicative checksstill further relative to the pared invalidation graph 6606 of FIG. 107.For example, although data value A invalidates data value D, that checkis duplicative as data value A also invalidates data value B, which alsoinvalidates data value D. Accordingly, the relationship between datavalue A and data value D is a duplicative check, which can be removed tosave processor and recalculation time. It can be seen additionally thatthe order of calculations can affect the invalidation order and theoperations. For example, if data value A is changed, and data value D ischanged in response, then data value D will need to be recalculatedagain after the data value B is updated. Accordingly, the invalidationgraph 6606 and recalculation order is selected, in certain embodiments,to reduce the number of invalidation checks and recalculationoperations, such as by completing the recalculation of data value Bbefore recalculating data value D. An example unified document surfaceapplication circuit 6216 further interprets a user edit value 6602, andformula engine 6302 further updates the executable object 6502 and/orrecalculates result values in response to the user edit value 6602 andthe pared invalidation graph 6606.

Referencing FIG. 70, an example system 7000, for example utilizable inany of the systems described in the present disclosure, includes anexecutable object 6502 having a resource utilization value. Example andnon-limiting resource utilization values include a number ofcalculations, a number of processor cycle executions, a memoryutilization (e.g. maximum memory utilized, RAM utilized, page file orvirtual memory utilization, and/or a trajectory of memory utilizationover the execution cycle of the executable object 6502), and/or acommunication bandwidth utilization (e.g., communications between adocument server 6202 and a client computing device 6204, 6212, betweenthe document server 6202 and a workflow server 6236, and/orcommunications between the document server 6202 and an external datasource 6226).

An example formula engine 6302 analyzes instructions of the executableobject 6502, and updates the executable object 6502 with a resourcereduced executable object 6502. The resource reduced executable object6502 includes instructions which, upon execution, cause the documentserver 6202, the client computing device 6204, 6212, and/or the workflowserver 6236 to perform operations to provide the result value(s), andincludes a reduced execution resource value that includes a lowerresource utilization value than the resource utilization value. Forexample, the formula engine 6302 includes operations to reduce querycalculation efforts, to reduce memory utilization, and/or to reduce acommunication value such as an external communication value (e.g.,communications to the document server 6202 and/or to an external datasource 6226). Example and non-limiting reduced executable objectsinclude an indexing operation (e.g., reducing calculations required tocomplete a query), a sort order operation (e.g., changing a sort orderand/or applying a sort to a table object, one or more table columns,etc.), and/or a filter order operation (e.g., applying a morerestrictive filter before a less restrictive filter, and/or applying afilter before a sort in a series of operations). In certain embodiments,an order of one or more operations, for example determined according toan invalidation graph 6606, is applied to provide the reduced executableobject. In certain embodiments, the order of operations and/oradjustments to operations to result in reduced resources includeconsideration of the actual data values in the document 6206. Forexample, at a first point in time where the document 6206 includes afirst state of the data values, application of “FilterA” then “FilterB”may result in a reduced resource utilization. In a continuing example,at a second point in time where the document 6206 includes a secondstate of the data values, application of “FilterB” then “FilterA” mayresult in a reduced resource utilization. Previously known databaseoptimization routines utilize best practice techniques and estimates ofwhich order of operations will result in an optimal resourceutilization, but the optimization routine does not have visibility tothe actual data, and accordingly cannot adjust the operations inreal-time in response to the data. Additionally or alternatively,resource utilization priorities in a system 6200 may result in aresource utilization that is reduced according to the resourceutilization priorities (e.g., to minimize processor usage of a clientcomputing device 6204, 6212, communication bandwidth between devices inthe system 6200, and/or memory utilization capped by a client computingdevice 6204, 6212) but that consumes more resources in another dimensionthat is not a priority (e.g., memory utilization of a document server6202 and/or workflow server 6236, communication bandwidth between adocument server 6202 and the workflow server 6236). Additionally,resource utilization priorities in the system 6200 may vary duringrun-time, for example where a user has a mobile device with a lowbattery, is currently presenting an aspect of a document 6206 to anaudience, and/or is under a time constraint for editing and responsetime is paramount. Previously known database optimization routinescannot respond to the resource utilization priorities expressed in thesystem 6200 at run-time.

An example system 6200 includes the document server 6202 dividingoperations of the executable object 6502 between at least two of thedocument server 6202, a client computing device 6204, 6212, and/or aworkflow server 6236. For example, the document server 6202 candetermine current workloads in the system to support document access,and/or predicted workloads in the system (e.g., based on a number ofusers logged in, operations of those users, and/or historical usagetrajectories for users and/or based on time of day, etc.). The exampledocument server 6202 further divides operations in response to aparameter such as: a client computing device resource parameter;contextual information; a current workload of the first client computingdevice; a current workload of the document server; and/or a currentworkload of the at least one workflow server. Contextual informationincludes any contextual information described throughout the presentdisclosure, including at least response values of the user (e.g., useroperations indicating that the user desires a more responsiveexperience, including an explicit priority request, multiple and/orrepeated entries for operations, and/or determined response timesrelative to a threshold response time for nominal acceptable systemresponse to the user); operations currently being performed by the user;information about the user location; and/or detection of other resourcesoperated on a client computing device 6204, 6212 that are competing forclient computing device resources. An example divided operation of theexecutable object 6502 further includes a query execution operation. Anexample client device 6204, 6212 includes a unified document surfaceapplication circuit 6216 that provides a document view 6218 in responseto the query execution operation. For example, the document server 6202shifts all or portions of the query execution operation to a workflowserver 6236, and the unified document surface application circuit 6216displays relevant portions of results from the query execution operation(e.g., portions visible to the user based on the user location withinthe document 6206) in the document view 6218.

An example system 6200 includes at least one data value 6304 being arun-time object, for example an object having a data value 6304 thatexists during run-time of the document 6206, but that is not stored inthe operation log 6208, the snapshot 6312, and/or the documentdefinition table 6314. In certain embodiments, a run-time object istermed a “volatile” object, however the terminology of run-time objectsis not limiting to the present disclosure. In certain embodiments, therun-time object includes a state value—for example a value indicating acertain state of the run-time object. Example and non-limiting statevalues include: a default value; a contextually determined value; and/ora user selected value. An example unified document surface applicationcircuit 6216 stores the state value separate from the document 6206 inresponse to a close operation of the document 6206. For example, arun-time object includes a state value that is created during run-time,and ordinarily deleted upon the closing of the document. In certainembodiments, example and non-limiting run-time objects include: aselection of a filter or view, a setting of a control, a current stateof an open dialog box, a current location within the document, and/or asetting of a control in the document. In certain embodiments, theunified document surface application circuit 6216 stores a state valueof the run-time object upon closure of the document 6206, and appliesone or more of the stored state values upon an opening of the document6206. In certain embodiments, the types of state values to be stored aredetermined according to user preferences, selections, prompts, and/orrules applied by a document owner, user, administrator, and/or adocument template. In certain embodiments, a stored state value isspecific to a user and/or to a particular client computing device 6204,6212: for example a first user opens a document and a first value of acontrol (e.g., a slider tool) is applied for that first user, and asecond user opens a document and a second value of the control isapplied for that second user. Accordingly, users are able to maintainviews, control settings, and other volatile parameters specific to theirown access to the document. An example unified document surfaceapplication circuit 6216 does not apply one or more stored statevalues—including, for example, where a control having a stored statevalue is no longer present within the document 6206 or has been modifiedto accept different setting values.

The example unified document surface application circuit 6216 furtherupdates the state value with the stored state value in response to anopen operation of the document 6206. An example stored state valueincludes a user specific value. An example run-time object includes acontrol, such as: a switch control; a multi-state switch control; amulti-picker control; an option list picker control; a dropdown pickercontrol; a numeric slider control; a date slider control; a time slidercontrol; a map picker control; a text box control; a validated text boxcontrol; a structured text box control; a card layout control; a drawingshape control; a media visual control; a table renderer control; a chartcontrol; and a shape set control. An example switch control accepts abinary state value for the control—for example a checkbox, button, orthe like. An example multi-state switch control provides for a number ofoptions and returns a single value from the control (e.g., a radiobutton, a virtual dial, etc.). An example multi-picker control providesa number of options, and returns a selected number of options (e.g., upto three) and/or up to all of the options. The number of optionsselectable on a multi-picker control may itself be selectable and/orconfigurable. An example numeric slider control provides for aconvenient graphical interface such as a slider bar, with a continuousor discrete numeric return from the slider control. The limits of thenumeric slider control (e.g. minimum and/or maximum) and/or theresolution of the numeric slider control may be selectable and/orconfigurable. An example data slider control and/or time slider controlprovides for a convenient graphical interface, with a time-based returnvalue such as an hour, minute, and/or calendar date return. The rangedisplayed, units, and/or resolution of the data slider control may beselectable and/or configurable. An example map picker control provides aconvenient interface to a map region and returns a selection from themap region (e.g., a location, a feature, a bounded region, etc.) and canreturn the value by quantitative location (e.g., latitude andlongitude), qualitative location (e.g., within one of a number ofspecified regions), and/or with a feature name and/or featureinformation (e.g., a card generated in response to the featureselected). Example text box controls includes a control that accepts astring of text, a control that includes validation (e.g., appliedcriteria for the text that must be met for a valid return), and/or astructured text box (e.g., formatted for phone number entry, addressing,etc.), and/or combinations of these. An example card layout controlprovides a card output having a number of controls positioned to providea predetermined layout for the user. An example drawing shape controlprovides a default shape to the user (e.g., a line, rectangle, circle,etc.) and returns a value in response to the shape as adjusted by theuser, such as a line length and position, position of vertices, a colorvalue, an area of the shape, and the like. An example a media visualcontrol includes an image and/or media display (e.g., YouTube, HTML, aURL result, etc.) configurable by the user. An example a table renderercontrol provides a linked table, a list, a card layout, and/or otherconfigurably rendered object (e.g., to allow the user to rapidlyprototype a table, lookup a value, etc.). An example chart controlincludes a selection of configured chart objects, and/or control entriesto link aspects of the chart to referencable areas of the document 6206.An example shape set control includes a control allowing the user toconstruct a visualization element, for example utilizing preconfiguredelements of other controls listed herein and/or visualization elementspresent in the document and/or available in a visualization elementlibrary, and can include combinations of any controls describedthroughout the present disclosure. In certain embodiments, propertiesand/or state values of a control are volatile elements. Additionally oralternatively, any property and/or state value of a control may be aformula and/or set by a formula, and/or may be stored in the operationlog 6208, the snapshot 6312, and/or the document definition table 6314.

An example procedure includes an operation to provide a documentincluding an operation log, where the operation log includes at leastone first sequential operation, and an operation to construct thedocument in response to the operation log. The example procedure furtherincludes an operation to determine a calculation definition in responseto at least one formula of the document, to provide an object definitioncorresponding to each of a plurality of objects in the document, and tosynchronize a first version of the document on a first client computingdevice with a second version of the document on a second computingdevice. An example operation to synchronize includes creating an updateddocument. An example procedure includes a third version of the documenton a third second client computing device, and an operation tosynchronize the first version of the document, the second version of thedocument, and the third version of the document. An example procedureincludes an operation to provide at least one of a snapshot or adocument definition table, where the at least one of the snapshot or thedocument definition table, combined with the at least one firstsequential operation, provide a definition of data values of thedocument.

An example document includes the snapshot, and a procedure includesupdating the snapshot, where the updating includes defining at least onesecond sequential operation, and where the at least one secondsequential operation, if executed, results in a consolidated documentequivalent to the document before the updating the snapshot. An exampleupdated snapshot comprises at least one of: the second sequentialoperation comprising fewer processor operations than the firstsequential operation; the second sequential operation comprising fewerlogical operations than the first sequential operation; the secondsequential operation comprising a simplified description of operationsthan the first sequential operation; and the second sequential operationcomprising lumped operations relative to the first sequential operation.

An example procedure further includes an operation to perform one ofclearing the operation log and reducing the operation log in response tothe updated snapshot. An example document includes the documentdefinition table, and a procedure includes updating the documentdefinition table, where the updating includes defining an updateddocument definition table having at least a portion of the firstsequential operation applied thereto. An example procedure includesperforming at least one of clearing the operation log and reducing theoperation log in response to the updated document definition table.

An example procedure includes an operation to interpret at least oneenvironment variable, and to selectively provide a document viewincluding the at least one environment variable. Example andnon-limiting environment variable(s) include at least one value such as:a user location value; an offset user document access indicator; a userfocus value; and a system time value. An example procedure includes anoperation to expose the at least one environment variable to a formulaeditor.

An example procedure includes an operation to interpret an external datasource request, and to provide an access to an external data source inresponse to the external data source request. An example procedurefurther includes an operation to store an authorization tokencorresponding to the external data source in the document, where theauthorization token includes at least one access value selected from theaccess values such as: an access type; an access scope; an accessduration; and an access reauthorization time value. An example procedurefurther includes an operation to provide an access to a second user inresponse to the authorization token and the access scope.

An example procedure includes an operation to interpret a user commentvalue, and to provide a document view comprising the user comment value.An example procedure further includes an operation to interpret a userreview value, and to provide a table view of at least one user commentvalue in response to the user review value.

Referencing FIG. 86, an example procedure 8600 includes an operation8608 to interpret a formula of a document, an operation 8610 todetermine a calculation definition in response to the formula of thedocument, and an operation 8612 to generate an executable object inresponse to the calculation definition. An example procedure 8600further includes an operation to delete the executable object inresponse to a close operation of the document on a first clientcomputing device. An example procedure includes an operation 8602 todetermine whether a cached executable object is available in response toan open operation of the document. Where the operation 8602 indicates“YES”, the example procedure 8600 includes an operation 8604 todetermine whether all or a portion of the cached executable object isvalid. Where the operation 8604 indicates “YES”, the procedure 8600includes an operation 8606 to selectively utilize at least a portion ofthe cached executable object. An example procedure 8600 further includesan operation 8614 to cache the executable object on a close operation ofthe document.

Referencing FIG. 87, an example procedure 8700 includes an operation8702 to generate a first executable object on a first client computingdevice, and an operation 8704 to generate a second executable object ona second client computing device. The example procedure 8700 furtherincludes an operation 8706 to determine a load balancing of executableobjects between available computing resources (e.g., a document server,client computing devices, and/or workflow servers), and selectivelydivide operations of the first and second executable objects between theavailable computing resources. The example procedure 8700 furtherincludes an operation 8708 to determine result values utilizing thefirst and second executable objects, and an operation 8710 to providedocument views in response to the result values.

Referencing FIG. 88, an example procedure 8800 includes an operation8802 to construct a dependency graph of a document in response to theexecutable object, a document model, and at least one data value of thedocument, and an operation 8804 to interpret an edit value (e.g., from auser update, reference update, contextual information change, and/orexternal data source change). An example procedure 8800 further includesan operation 8806 to update the executable object in response to theedit value and/or the dependency graph.

Referencing FIG. 89, an example procedure 8900 further includes anoperation 8802 to construct a dependency graph, an operation 8902 toconstruct an invalidation graph in response to the dependency graph, theat least one data value of the document, and the calculation definition.The example procedure 8900 further includes an operation 8904 to parethe invalidation graph, wherein the paring operation includes removingredundancy and/or de-duplicating (“de-duping”) the invalidation graph.The example procedure 8900 further includes an operation 8804 tointerpret an edit value (e.g., from a user update, reference update,contextual information change, and/or external data source change), andan operation 8806 to update the executable object in response to theedit value and/or the invalidation graph. Referencing FIG. 90, anexample procedure further includes an operation 9002 to determine anorder of operations for the executable object in response to theinvalidation graph, and an operation 8806 to further update theexecutable object in response to the order of operations determined inresponse to the invalidation graph.

Referencing FIG. 91, an example procedure 9100 includes an operation9102 to analyze instructions of the executable object, and an operation9108 to update the executable object with a resource reduced executableobject, where the resource reduced executable object includesinstructions which, upon execution, cause at least one of the documentserver, the client computing device, and/or a workflow server to performoperations to provide the result value. An example procedure 9100includes an operation 9104 to determine queries in the document, anoperation 9106 to determine data values in the document, and wherein theoperation 9108 is further in response to the queries and/or the datavalues.

Example operations 8706 to load balance and/or selectively divideoperations of the first executable object include dividing operations inresponse to at least one of: a client computing device resourceparameter; contextual information; a current workload of the clientcomputing device; a current workload of the document server; and/or acurrent workload of the at least one workflow server. Example operations8706 to divide operations of the executable object further includedividing and/or moving query execution operations of the executableobject.

Referencing FIG. 92, an example procedure 9200 includes an operation9206 to determine one or more state values for a run-time object. Theexample procedure 9200 further includes an operation 9202 to determinewhether stored state values are available open operation of thedocument, and in response to operation 9202 indicating “YES”, anoperation 9404 to update one or more state values with the stored statevalues. The example procedure 9200 further includes an operation 9208 tostore one or more state values in response to a close operation of thedocument. In certain embodiments, a state value includes any run-timeparameter that is not ordinarily stored with the document, for examplein an operation log. In certain embodiments, a state value includes avolatile parameter, for example any data value, reference, and/orformula where the resultant output value can change in response to an“environmental” factor and/or a factor not controlled by the user. Forexample, a time value such as a keyword linked to a specific time (e.g.,“NOW( )” or “TODAY( )”) is a state value or volatile parameter. Incertain embodiments, environmental variables such as the current user(e.g., CURRENTUSER( ), a user location (e.g., CURRENTLOCATION( ), and/ora current user device (e.g., USERDEVICE( ) or USERDEVICETYPE( )) arestate values, volatile parameters, and/or environmental variables.

Referencing FIG. 43, an example system 4300 includes a document server4302 that communicates at least a portion of a document 4306 to a clientcomputing device 4304. The example client computing device 4304 includesa user interaction circuit 4308 that interprets a user selection 4310including at least one data value 4312, where the document 4306 includesthe data value 4312. The example data value 4312 includes at least areference or a link to an external source data 4314. Example andnon-limiting external data sources 4318 hosting the external source data4314 include: a web site, a third party database, a third party network(e.g. a hosting server and/or cloud server); and/or any other externaldata source 4318 positioned externally to the document server 4302 andclient computing device 4304. In certain embodiments, an external sourcedata 4314 is positioned outside the document 4306, but may be withineither of the document server 4302 and/or the client computing device4304. For example, a user 814 may be logged into the client computingdevice 4304 accessing the document 4306, and access an external sourcedata 4314. From the perspective of the user 814, example external sourcedata 4314 is any data accessed, referenced, and/or linked that isexternal to the document server 4302, external to the document 4306,and/or external to an application utilized by the user 814 to access thedocument 4306. In certain embodiments, the external data source 4318 ishosted external to the document server 4302 and/or client computingdevice 4304, but the external source data 4314 accessed at the time ofentry of the user selection 4310 is stored on the document server 4302and/or the client computing device 4304—for example where a local copyof one or more aspects of the external source data 4314 is created. Anexample embodiment includes the document server 4302 and/or clientcomputing device 4304 copying one or more aspects of the external sourcedata 4314, such as to improve responsiveness of the system 4300, toprovide for a single (or reduced number) of downloads and/or accesses ofthe external source data 4314 for multiple uses of the external sourcedata 4314 (e.g. by multiple users and/or multiple locations within thedocument 4306), and/or to provide robustness of the system 4300 tointermittent availability of communications with the external datasource 4318.

The example client computing device 4304 includes a data managementcircuit 4324 that creates a data view 4316 in response to the userselection 4310. An example data view 4316 includes information generatedin response to the user selection 4310 and the external source data4314, and further in response to a portion of the document 4306 beingaccessed by the user 814. For example, a data management circuit 4324references at least a portion of the external source data 4314 inresponse to the user selection 4310, and creates the data view 4316 todisplay a portion of the external source data 4314 and/or otherinformation generated in response to the external source data 4314, suchas: a portion of the external source data 4314 indicated in the userselection 4310; one or more aspects of the external source data 4314provided to the user 814 for further selection; a card having externalsource data 4314 displayed thereon; and/or information about externalsource data 4314 choices for the user 814 (e.g., a listing of potentialmatches within the external source data 4314). In certain embodiments,the data management circuit 4324 additionally or alternatively providesinformation for the data view 4316 that includes source data 4330 thatis not external source data 4314, data from within the document 4306,and/or data from within the data value 4312. Accordingly, in certainembodiments, the user 814 can access and visualize external source data4314 seamlessly in the same manner that document 4306 information andother source data 4330 is accessed or visualized. In certainembodiments, the user 814 does not need to be aware that data utilizedor depicted is external source data 4314. In certain embodiments, theuser 814 is aware that data utilized or depicted is external source data4314, and/or selects from available external data sources 4318.

The example client computing device 4304 includes a user display circuitthat displays at least a portion of the data view 4316 to the user 814in response to the user selection 4310, for example a portion of thedata view 4316 related to the current location within the document 4306being accessed by the user 814.

An example user interaction circuit 4308 further interprets a user dataentry 4322, where the data management circuit 4324 further provides anexternal source data option 4326 in response to the user data entry4322, and where the user display circuit 4320 further updates at least aportion of the data view 4316 in response to the external source dataoption 4326. Example and non-limiting external source data option(s)4326 include a listing and/or menu of available external data sources4318; a listing and/or menu of available formats and/or import displaysof the external source data 4314; a listing and/or menu of availableformats and/or import displays of the external source data 4314,including previews of one or more options; login information for one ormore external data sources 4318; and/or information about one or moreexternal data sources 4318 such as cost information, timelinessinformation, and/or relevancy information of the external source data4314 based on the user selection 4310, the user data entry 4322, and/orinformation such as a data type, document section, offset data (e.g., anearby row or column value from a table), and/or a heading within thedocument 4306. In certain embodiments, the external source data 4314 isread-only data.

An example user interaction circuit 4308 further interprets a user dataentry 4322 including an edit of the data value(s) 4312, and the datamanagement circuit 4324 further updates the external source data 4314 inresponse to the user data entry 4322. For example, a user 814 changes avalue in a table that includes data pulled from the external source data4314, and the data management circuit 4324 communicates the data changeto the external data source 4318, where the external source data 4314 isupdated in response to the changed value. In certain embodiments, theuser 814 is thus enabled to work directly with external source data 4314as if the data were provided directly within the document 4306,including viewing and/or editing the external source data 4314. Incertain embodiments, the availability to view and/or edit the externalsource data 4314 depends upon an authorization of the user 814 and/or asubscription type of the user 814 with respect to the external sourcedata 4314 and/or external data source 4318. In certain embodiments, theuser display circuit 4320 prompts the user 814 where the external datasource 4318 is going to be changed in response to user interactions,such as to confirm the user 814 intention to change the external sourcedata 4314.

An example data management circuit 4324 further queries the externalsource data 4314 and provides an update of the data view 4316 inresponse to the query. The example user display circuit 4320 furtherupdates the display of the data view 4316 in response to the updateddata view from the data management circuit 4324. For example, theexternal source data 4314 may be accessed periodically, in response toan update event (e.g. a request from the user 814, the document server4302, and/or the client computing device 4304), and/or in response to anotification from the external data source 4318 that one or more aspectsof the external source data 4314 have been updated. The example datamanagement circuit 4324 provides for updates of the external source data4314 automatically into the document 4306, keeping the document 4306and/or data view 4316 up to date with changes in the external sourcedata 4314, with or without direct input from the user 814. Example andnon-limiting operations of the data management circuit to perform thequery operation of the external source data 4314 include: an update timeexpiration (e.g., update from the external source data 4314 daily,hourly, weekly, and/or at any other selected interval); a notificationfrom an external data source 4318 hosting the external source data 4314;a change in a second data value (not shown) having a dependency on theexternal source data 4314 (e.g., the user 814 changes a formula, table,and/or object having a calculation utilizing the external source data4314, and the data management circuit 4324 queries the external sourcedata 4314 to ensure the results of the formula, table, and/or object aredisplaying current information); a change in an object having adependency on the external source data; a creation of a second datavalue having a dependency on the external source data (e.g., the user814 creates a formula, table, and/or object having a calculationutilizing the external source data 4314, and the data management circuit4324 queries the external source data 4314 to ensure the results of theformula, table, and/or object are displaying current information); acreation of an object having a dependency on the external source data4314; and/or a request to provide a continuous update of the at leastone data value. For example, a setting in the document 4306 and/or anobject accessing the external source data 4314 (e.g., set by the user,and administrator, rules from a document template, or the like) mayindicate an update rate of the external source data 4314, which may beset to continuously update the external source data 4314 such that thedata is always “live” to the user 814. Example and non-limitingembodiments of “continuous updating” include updating the externalsource data 4314 instantaneously (e.g., the data management circuit 4324performing a query of the external source data 4314 in every executionloop of the document server 4302 and/or client computing device 4304);querying the external source data 4314 at a substantially fast rate(e.g., each 200 msec, each second, each minute, and/or other selectedvalue); querying the external source data immediately in response to anotification from the external data source 4318 that the external sourcedata 4314 has changed; and/or querying the external source dataimmediately in response to a notification from the external data source4318 that a relevant portion of the external source data 4314 haschanged. In certain embodiments, continuously updating the externalsource data 4314 includes portions of the operating time (e.g., the timeduring which the user 814 is accessing the document 4306 and/or datavalue 4312) where the data management circuit 4324 pauses or delaysupdating the external source data 4314—for example to conserveprocessing utilization and/or communication bandwidth. In certainembodiments, continuously updating the external source data 4314includes pausing the updating when the user 814 is not accessing aportion of the document 4306 utilizing and/or having a dependency on theexternal source data 4314, and resuming the updating when the user 814accesses the portion of the document 4306 utilizing and/or having adependency on the external source data 4314, and/or resuming theupdating when the user 814 is predicted to access the portion of thedocument 4306 utilizing and/or having a dependency on the externalsource data 4314 in the near future. Example and non-limiting operationsto predict when the user 814 will access the portion of the document4306 utilizing and/or having a dependency on the external source data4314 in the near future include determining that the user 814 locationwithin the document 4306 is proceeding toward any such portion (e.g.,scrolling, moving through tabs, etc.), determining that the user 814 isaccessing precursor data for any such portion (e.g., data having similarnames, data types, and/or information type such as financial, personnelrecords, project tasks, etc.), and/or determining that the user 814 oranother user has accessed any such portion after similar operationswithin the document 4306 to the operations being performed by the user814 (e.g., such a portion is often accessed after printing, checking atask list, accessing a particular table within the document 4306, etc.).

In certain embodiments, the user selection 4310 includes a sourceidentifier. Example and non-limiting source identifiers include: auniform resource locator (URL); a network location; a file name; anexternal source application programming interface reference; and/or anexternal source access reference. An example user selection 4310includes the user 814 entering a website name into the document 4306.The entry of the website name, and/or any other source identifier,includes entry as: in-line text, within a table, and/or utilizing anintroductory referencing command before the website name such as aspecific character sequence (e.g., “@”), a menu selection (e.g., from adrop-down menu, toolbar, etc.), and/or utility entry (e.g., a mouse“right-click”, a hotkey command, etc.). Example and non-limiting sourceidentifiers include website references (e.g., URLs for, and/or access toAPI interfaces to) GitHub, MailChimp, Stripe, Shopify, Google Calendar(and/or other Google applications), Slack, Dropbox, Jira, Intercom,Pingdom, Ops Genie, LinkedIn, and/or Facebook. In certain embodiments,operations to access an external source data 4314 and/or external datasource 4318 include authentication (e.g. login to the external datasource 4318) using an API interface, and/or authentication whereinauthentication information such as a username and/or password are notstored on an operation log and/or in a snapshot.

In certain embodiments, the user interaction circuit 4308 furtherinterprets a user data request value 4328, and the data managementcircuit 4324 further provides an external source data option 4326 inresponse to the user data request value 4328, where the external sourcedata 4326 option comprises the data source identifier. For example, theuser 814 may make a menu selection to request available external datasources 4318, and the data management circuit 4324 determines whichexternal data sources 4318 are available and/or contextually indicatedfor the user 814. In certain embodiments, the external data sourceoption 4326 further includes a listing and/or menu of one or moreexternal data sources 4318 available to the user 814, and/or may furtherinclude a notification that additional external data sources 4318 beyondthose depicted are available. Contextual determination of external datasources 4318 includes determining data sources according to a data typebeing access by the user 814, a document location accessed by the user814, subscription options that are active and/or available to the user814, and/or rules defined by the user, an administrator, and/or from adocument template. An example user data request value 4328 includes acontent based request (e.g., specific data values in a text flow and/ortable at a location in the document 4306 accessed by the user 814)and/or a subject matter based requests (e.g., a request by the user 814to find financial sources, scientific sources, personnel relatedsources, social media sources, etc.).

Referencing FIG. 44, an example procedure 4400 includes an operation4402 to interpret a user selection including at least one data value,where the data value(s) include all or a portion of a document, and thedata value(s) include at least one of a reference or a link to anexternal source data. The example procedure 4400 further includes anoperation 4404 to create a data view in response to the user selection,and an operation 4406 to display at least a portion of the data view inresponse to the user selection. The example procedure 4400 includes anoperation 4408 to interpret a user data entry, and/or an operation 4409to provide an external source data option in response to the user dataentry. The example procedure 440 further includes an operation 4410 toupdate at least a portion of the data view in response to the externalsource data option. An example procedure includes the external sourcedata including read-only data. An example procedure 4400 includes theoperation 4408 interpreting a user data entry including an edit of theat least one data value, and an operation 4412 to update the externalsource data in response to the user data entry.

An example procedure 4400 includes an operation 4414 to query theexternal source data, and an operation 4416 to update the data view inresponse to the query. In certain embodiments, the procedure 4400includes an operation (not shown) to update the display in response tothe updated data view. In certain embodiments, the operation 4414 toquery the external source data includes querying the external sourcedata in response to at least one of: an update time expiration; anotification from an external device hosting the external source data; achange in a second data value or a creation of a second data value, thesecond data value having a dependency on the external source data;and/or a change in an object and/or a creation of an object, where theobject has a dependency on the external source data. An exampleprocedure further includes an operation (not shown) to break the atleast one of the link or reference after the operation 4404 to createthe data view. Example operations to break the link or reference to theexternal source data include operations to allow the user 814 to workwith a document offline, operations to allow the user 814 to preserve apresent state of the external source data without live updating, and/oroperations to allow the user 814 to perform scenario checks or otherdata manipulations without affecting the external source data.

In certain embodiments, the user selection includes a data sourceidentifier. Example and non-limiting data source identifiers include: aURL; a network location; a file name; an external source applicationprogramming interface reference; and/or an external source accessreference.

Referencing FIG. 45, an example procedure 4500 includes an operation4502 to interpret a user data request value, and the operation 4509 toprovide external source data option(s) in response to the user datarequest value. In certain embodiments, the external source data optionincludes the data source identifier. Example and non-limiting user datarequest values include a content based request and/or a subject matterbased request. In certain embodiments of the procedure 4500, the userdata request values are limited to a content based request and/or asubject matter based request—for example where the operation 4502 isprovided contextually for user entries, and the external source dataoption(s) are limited to options matching one of a content accessed by,focused by, and/or related to the current user operations (e.g., a wordor data value at the user focus location when the user provides a userdata request value such as a data lookup request) and/or a subjectmatter relating to content accessed by, focused by, and/or related tothe current user operations (e.g.: subject matter categories related toa word or data value at the user focus location; a data type for suchcontent; a relevant keyword such as a document section heading, tablecolumn heading, or the like; rules defined by a user, administrator,and/or a document template; and/or any other contextually determinedsubject matter as described throughout the present disclosure).

Referencing FIG. 70, an example system 7000 includes a document 6206including an operation log 6208, where the operation log 6208 includessequential operation(s) defining operations to create data values 6304of the document 6206. The example system 7000 further includes adocument object model 6309, where the document object model 6309includes an object definition 6310 corresponding to each of a number ofobjects 6320 in the document 6206. The document 6206 is at leastpartially positioned on a document server and/or client computingdevice. For example, without limitation, the system 7000 is utilizablein any system described throughout the present disclosure having adocument server and a client computing device, or a first computingdevice and a second computing device. An example client computing deviceincludes a unified document surface application circuit 6216 thatinterprets a user formula value 6308, and updates the data values 6304of the document in response to the user formula value 6308. The examplesystem 7000 further includes a formula engine 6302, positioned withinthe document 6206 in the example, but additionally or alternativelypositioned, without limitation, on a document server, client computingdevice, and/or unified document surface application circuit 6216. Theexample formula engine 6302 determines a calculation definition 6306 inresponse to the user formula value 6308 and the document object model6309. An example unified document surface application circuit 6216further validates the user formula value 6308 in response to a formulalibrary 7002.

An example formula engine 6302 further generates an executable object6502 in response to the calculation definition 6306, wherein theexecutable object 6502 includes instructions which, upon execution,cause at least one of the document server, a client computing device,and/or a workflow server to perform operations in response to thecalculation definition 6306. An example system 7000 includes theinstructions of the executable object 6502 performing a column-wiseoperation on a table object in response to the formula value 6308including a table column reference.

An example user formula value 6308 includes a query operation 7006having at least one query criterion 7008 and at least one data object7010—for example one or more of the document objects 6320. In certainembodiments, the data object(s) 7010 include external data, volatileinformation, and/or other objects which may not be document objects6320. An example query criterion 7008 includes a time valuecorresponding to the at least one data object 7010, and the formulaengine 6302 further determines the calculation definition 6306 utilizinga state of the at least one data object 7010 determined in response tothe time value. For example, a query operation 7006 can be constructedto query a table object against the state of the table object at somehistorical condition, such as “3 days ago,” against a previous versionof the document 6206, and the like.

An example system 7000 includes the unified document surface applicationcircuit 6216 further validating the user formula value 6308 byperforming at least one operation such as: correcting a user syntax;correcting a user formula name; correcting a user formula reference;and/or prompting a user for a correction of any of the foregoing. Anexample unified document surface application circuit 6216 furtherprovides a formula context display 7004, where the formula contextdisplay 7004 includes at least one formula name, and further includes anargument representation and/or a description value corresponding to eachof the at least one formula name. An example unified document surfaceapplication circuit 6216 further provides the formula context display7004 as a table object, for example as a table displayed next to acurrent user entry location for reference by the user. An exampleunified document surface application circuit 6216 further determines theat least one formula name in response to at least one of: a charactersequence entered by the user, or contextual information. Withoutlimitation, any operations to preview, look-up, and/or autocomplete anentry for a user throughout the present disclosure are contemplated forinclusion in the determination and display of the formula contextdisplay, including at least the portions referencing FIG. 37 and FIG.56. An example formula context display 7004 includes at least onereference value. Example and non-limiting reference values include: anobject name for one of the objects 6320 in the document; an objectreference for one of the objects 6320 in the document; a tag for anobject 6320 in the document; a range reference for a range in thedocument; and/or an external data source 6226 reference.

Referencing FIGS. 71 through 73, a non-limiting example of a formulalibrary 7002 is depicted schematically. The formula library 7002includes a formula name 7102, a formula syntax and/or argumentsdefinition 7104, and/or a formula description 7106. In certainembodiments, a formula library 7002 such as depicted is utilized by theunified document surface application circuit 6216 to verify a formulavalue 6308, correct syntax for the user, and/or to provide the formulacontext display 7004. The depicted formula options in the exampleformula library 7002 are non-limiting illustrations, and any formulasmay be utilized in a system, including user-defined,administrator-defined, and/or document template provided rules.

Referencing FIG. 75, an example illustration 7500 includes a referencevalue 7502 (e.g., from a user formula value), where the reference valueincludes a value such as: an object name for one of the objects in thedocument; an object reference for one of the objects in the document; atag for an object in the document; a range reference for a range in thedocument; and an external data source reference. An example executableobject 6502 includes instructions to perform an operation to dereferencethe reference value 7502 (e.g., to determine a value at the referencedlocation, a value that a pointer is pointing to, and/or a value from aformula referenced by the reference value 7502), thereby determining adereferenced value 7504. An example unified document surface applicationcircuit 6216 provides the dereferenced value 7504 as a mask value 7506.For example, a user enters a reference value 7502 as a formula in atable cell, the executable object 6502 determines the dereferenced value7504 for the formula, and the unified document surface applicationcircuit 6216 displays the dereferenced value 7504 for the table cell tothe user. However, in certain embodiments, the actual value for thetable cell may be the reference value 7502. Additionally oralternatively, the actual value for the table cell may be thedereferenced value 7504, and/or the unified document surface applicationcircuit 6216 may preserve the reference value 7502. Example operationsto preserve the reference value include, without limitation: saving thereference value 7502 in an offset table column from corresponding onesof the dereferenced values; saving the reference value 7502 in at leastone hidden table cell; saving the reference value 7502 in a systemtable; saving the reference value 7502 in at least one selectivelyviewable table cell; saving the reference value 7502 in a formula entrylocation; and/or saving the reference value 7502 on a document objectincluding the dereferenced value 7504.

Referencing FIG. 118, an illustration 11800 includes user formula value6308 entry graphical user interface. In the example, a formula contextdisplay 7004 is provided indicating a column name suggestion for theuser for entry into the formula 6308. Accordingly, the user can rapidlyapply a column-wise operation to an entire data column of a table with asingle entry of a formula. Referencing FIG. 119, an illustration 11900depicts a table column having a dropdown toolbar button associated withthe table column to provide an easy integration of a formula for thecolumn of the table. A non-limiting example table displays the dropdowntoolbar button in response to a focus on the column or column heading, aselection of the column heading. Referencing FIG. 120, an illustration12300 depicts a formula context display 7004 provided as a contextualdisplay, wherein the user has entered a formula into a row of a table,and the unified document surface application circuit 6216 prompts theuser to determine whether to apply the formula to the entire column ofthe table.

Referencing FIG. 121, an illustration 12100 depicts a query operation7006 (e.g., as a formula 6308) having a query criterion 7008 and a dataobject 7010. The example query operation includes a first example (thetop depiction) which returns the data object “Trusted Tester” (e.g., atable object) as it existed on the date 30 Mar. 2015; the second queryoperation returns the data object “Trusted Tester” (e.g., a tableobject) as it existed on the date 30 Mar. 2015 and further filtered byrows having an “Active” status value (e.g. based on a column “Status”),and the third query operation (the bottom depiction) returns the secondquery operation as a count of data values meeting the previous criteria.The query operations in the illustration 12100 may be sequentialoperations (e.g., as the user enters further information into a formula)and/or may be independent depictions of separate query operations 7006.The illustration 12100 provides an illustration of how embodiments ofthe present disclosure provide for complex query operations to begenerated against variant data objects with ease by a modestlyproficient user, including capabilities to operate on entire columns ofdata objects with a single command, to apply complex filters, and/oraccess previous states of data objects. The user has access to theentire formula library 7002, as well as other features including ease ofdata aggregation, access to external data, rapid creation ofvisualization elements, and/or reference access to data throughout thedocument within a single formula command.

Referencing FIG. 122, an illustration 12200 depicts an example formulacontext display 7004. The query operation 7006 of illustration 12200includes a formula having an equivalent to the third query operation ofillustration 12100 for purposes of clarity of description. The queryoperation 7006 includes a display in a block format (e.g., where theline of the formula extends past a selected length and/or user display,and/or in response to a user operation to display in a block format),and further includes commenting lines within the formula (e.g., set offby “//” or any other character sequence). The illustration 12200 furtherdepicts a formula context display 7004, for example includes suggestedmethods, references, and/or objects for entry into the formula,descriptions of objects present in the formula, and/or other selectedinformation according to any descriptions in the present disclosure.

Referencing FIG. 123, an illustration 8100 includes a query operation7006 and a formula context display 7004. The formula context display7004 in the example is responsive to the actions of the user in theformula (e.g., query operation 7006), for example providing informationabout appropriate next entries into the formula, usage examples, syntaxinformation, and/or selectable choices for the user to utilize. Anillustration 11600, for example after an entry of “DATE” into theillustration 8100, the formula context display 7004 is updated toreflect information relevant to the current position in the queryoperation 7006.

Referencing FIG. 93, an example procedure 9300 includes an operation9302 to interpret an operation log, an operation 9304 to interpret auser formula value and to update the data values of the document inresponse to the user formula value, and an operation 9310 to determine acalculation definition in response to the user formula value and adocument object model. An example procedure 9300 further includes anoperation 9306 to interpret a formula library, and an operation 9308 tovalidate the user formula value in response to the formula library. Theexample procedure 9300 further includes an operation 9311 to generate anexecutable object in response to the calculation definition, wherein theexecutable object comprises instructions which, upon execution, cause atleast one of a document server and a first client computing device toperform operations in response to the calculation definition, and anoperation 9312 to perform a column-wise operation in response to theformula value including a table column reference. An example formulaincludes a query operation including at least one query criterion and atleast one data object, and/or the query criterion including a time valuecorresponding to the at least one data object. The example procedure9300 further includes an operation 9314 to perform an “as-of” queryoperation on the data object, where the “as-of” query operation includesupdating the calculation definition utilizing a state of the at leastone data object determined in response to the time value. For example,an operation includes a supplied time value, and updating thecalculation definition utilizing the state of a data object determinedaccording to the supplied time value (e.g., a specific date, a specifictime, a date range, etc.).

Referencing FIG. 94, an example procedure 9400 includes an operation9308 to validate the user formula by performing an operation such as:correcting a user syntax; correcting a user formula name; correcting auser formula reference; and/or prompting a user for a correction of anyof the foregoing. The example procedure 9400 includes an operation 9402to provide the formula context display, where the formula contextdisplay includes at least one formula name, and further includes anargument representation and/or a description value corresponding to eachof the at least one formula name.

-   -   27. The method of claim 23, further comprising providing a        formula context display, the formula context display comprising        at least one reference value.    -   28. The method of claim 27, wherein the at least one reference        value comprises at least one reference value selected from the        reference values consisting of: an object name for one of the        objects in the document; an object reference for one of the        objects in the document; a tag for an object in the document; a        range reference for a range in the document; and an external        data source reference.

Referencing FIG. 95, an example procedure 9500 includes an operation9304 to interpret a user formula including reference value, and anoperation 9502 to dereference the reference value. The example procedure9500 further includes an operation 9504 to preserve the reference value,and/or an operation 9506 to dereference the reference value by providingthe dereference value as a mask value. Example operations 9504 topreserve the reference value include preserving the reference value in alocation such as: in an offset table column from corresponding ones ofthe dereferenced values; in at least one hidden table cell; in a systemtable; in at least one selectively viewable table cell; in a formulaentry location; and on a document object including the dereferencedvalue.

Referencing FIGS. 82 and 83, an example system 8200 includes a documentserver 8203 communicatively coupled to at least one client computingdevice 8204, and a document 8206 including an operation log 8302 (alsoreference FIG. 117), where the operation log 8302 includes sequentialoperation( ) defining operations to create data values 8304 of thedocument 8206. The example system 8200 further includes a formula engine8306, where the formula engine 8306 determines a calculation definition8308 in response to at least one formula 8310 of the document 8206. Theformula engine 8306 an executable object 8312 in response to thecalculation definition 8308, and where the executable object 8312includes instructions which, upon execution, cause at least one of thedocument server 8203, client computing device 8204, and/or a workflowserver 8212 to perform operations in response to the calculationdefinition 8308. An example document 8206 is positioned on at least oneof the document server 8203 and/or the client computing device 8204, andwhere the formula engine 8306 further interprets a user focus location8314, and directs execution of the executable object 8312 in response tothe user focus location 8314. Example and non-limiting user focuslocations 8314 include a location value such as: a document sectioncurrently focused by a user; a document object currently focused by auser; a document canvas currently focused by a user; and/or a portion ofthe document currently visible to a user. A focus by the user includes,without limitation, a user cursor location, a user visible object and/orportion of the document 8206, a mouse location of the user, anyreference value in a formula, document section, and/or document objectindicated by any of the foregoing, and/or a formula, document section,and/or document object indicated by the reference value (e.g., theformula, document section, and/or document object referenced by thereference value). An example document uniform surface applicationcircuit 8208 further predicts a second user focus location 8316, andwhere the formula engine 8306 further directs execution of theexecutable object 8312 in response to the second user focus location8316. Example operations to predict the second user focus location 8316include predicting a location such as: a formula, document section,and/or document object indicated by a reference value within the userfocus location 8314; a document section and/or object in a trajectory ofdocument sections or objects (e.g., a next document section and/orobject progressing from accessed document sections and/or objectsrecently accessed by the user); a location accessed by the user afteraccessing the user focus location 8314 in a previous operation by theuser; a location accessed by another user after accessing the user focuslocation 8314 in a previous operation by the another user; and/or adocument section and/or object having a high relevance to the user focuslocation 8314 (e.g., under any principles described throughout thepresent disclosure, including at least the portion referencing FIG. 24).

An example system 8200 further includes a document uniform surfaceapplication circuit 8208 further predicting the second user focuslocation 8316 in response to at least one of: a state value; a previousoperation sequence of a user accessing the document; a previousoperation sequence of a user; a relationship value between the userfocus location 8314 and a data value 8304 within the document that isnot within the user focus location 8314; and/or a processing time tohydrate a data value 8304 within the document 8206 that is not withinthe user focus location 8314 (e.g., a long processing time is utilized,in certain embodiments, to begin hydration of the second focus location8316 earlier to provide for seamless interaction of the document 8206with the user). An example document uniform surface application circuit8208 further predicts the second user focus location 8314 in response toat least one of: a document type value; a data type value of a datavalue within the document that is within the user focus location 8314;and/or a data type value of a data value 8304 within the document thatis not within the user focus location 8314.

An example system 8200 further includes the document uniform surfaceapplication circuit 8208 further predicting the second user focuslocation 8316 in response to a user device type and/or a user deviceresource description. In certain embodiments, a user device type and/oravailable resources indicate certain types of user access to thedocument 8206 are more likely (e.g., utilizing information about amobile phone interface to the document 8206 and navigation capabilitiesusing the device), and/or the resources of the device may indicate thatcertain types of access are more likely, and/or provide informationabout hydration times for data values 8304 and modulate prediction timesfor potential second user focus locations 8316 accordingly. An examplesystem 8200 includes the workflow server(s) 8212 in communication withthe document server 8203, and where the executable object 8312 furtherincludes instructions which, upon execution, cause at least one of thedocument server and the first client computing device to performoperations to provide a result value in response to the calculationdefinition 8308. An example system 8200 further includes the documentserver 8203 further dividing operations of the executable object 8312between at least two of the document server 8203, the client computingdevice 8204, and/or the workflow server(s) 8212.

Referencing FIG. 84, an example system 8400 includes an architecture forthe system 8400 to implement a unified document surface application,which may, for example, be utilized in any systems and/or proceduresdescribed throughout the present disclosure. The example system 8400includes a client 8402, such as a client computing device and/or anapplication running on a client computing device, in communication witha model 8404, document storage 8412, a formula engine 8410, an operationsynchronization 8406 module, a storage synchronization 8414 module,and/or external resources 8408 in communication with the system 8400.Elements of the system 8400 are depicted schematically to depictrelationships therebetween, and elements of the system 8400 may beprovided on any devices described herein, and/or distributed acrossseveral devices. In certain embodiments, an element, such as the formulaengine 8410, may be present on more than one device—for example on adocument server and/or a client computing device. Additionally oralternatively, instances of elements may be created on separate devicesduring run-time operations of the system 8400, where such instances maybe temporary to support certain operations.

Referencing FIG. 85, a further example of the system 8400 includesadditional example details of the system 8400. An example client 8402includes a client computing device, and/or an application running on theclient computing device. The example system 8400 further includes amodel 8404 including an object reader, where the model 8404 may furtherinclude a document object model. In certain embodiments, the model 8404is included on a client computing device, for example as a scriptincluded within a unified document surface application, and/or providedto the client 8402 by a document server upon opening the document. Theexample system 8400 further includes a formula engine 8410. In certainembodiments, the formula engine 8410 further includes circuits fordependency graph management, invalidation graph management and/orproviding pared invalidation graphs (e.g., improved and/or optimizedinvalidation graphs), a query analysis and/or query optimization (orimprovement), and/or query execution. In certain embodiments, theformula engine 8410 is included within the document, on the client 8402,and/or on a document server. The example system 8400 further includes astorage manager 8412, which may be stored on the document server and/oron a client computing device. In the example system 8400, the formulaengine 8410 communicates aspects of the dependency graph, invalidationgraph, and/or query operations, and/or may further communicate anexecution object to the storage manager 8412.

The example storage manager 8412 includes operation log (and/orsnapshot, and/or a document definition table) manager, tracking acommitted log (e.g., operations already synchronized) and an uncommittedlog (e.g., operations that have not been synchronized and/or are inconflict), and/or a user data store (e.g., environment variables, userspecific information, volatile data, and/or other aspects created in thesystem 8400 that are part of one user's experience with the document butmay not be present in another user's experience with the document). Theexample storage manager 8412 further includes a calculated data store(e.g., to re-use calculation information that is still valid and reduceresource consumption), and/or a dependency graph store. The storagemanager further includes a model mutator that controls updates to thedocument model and/or execution object. An example model mutatorincludes an undo manager (e.g. storing pending operation log updates)and/or an object table (e.g. a system table providing information aboutinstances of the document object that are present in the document). Themodel mutator in the example system 8400 is in communication with anoperation synchronization 8406 module, such as an arbitration circuit,wherein the model mutator allows updates to the operation log (e.g., thecommitted log) in response to synchronization and/or conflict managementoperations of the operation synchronization 8406 module. The examplesystem 8400 further includes the storage synchronization 8414 module,which coordinates updates from external resources 8408, such as anysource data, external source data, and/or external data sourcesdescribed throughout the present disclosure. In certain embodiments,external resources 8408 can be mirrored to the storage manager 8412, forexample on a scheduled basis and/or with the same authorizationsenforced relative to the external resources 8408, for example to providefor shared access and improved system performance for the externalresources 8408. The example system 8400 further includes a partial datamanager 8503, which may include storing calculation results,intermediate results, query results, data values, and other parameterswhich may be shared in the system 8400 to improve operations and reduceresource utilization. The example partial data manager checks dataintegrity for partial results, for example utilizing the invalidationgraph and/or dependency graph, and is accessible to provide data inresponse to operations of the system 8400.

An example system 8200 further includes a data value 8304 furtherincluding an external data source reference 8318. An example system 8200includes at least two external data source references 8318 (e.g., asecond external data reference 8320), where the formula engine 8306further directs execution of the executable object 8312 in response to afirst priority corresponding to the first external data source reference8318 and a second priority corresponding to the second external datareference 8318.

Referencing FIG. 96, an example procedure 9600 includes an operation9602 to interpret an operation log, an operation 9604 to interpret auser formula, and an operation 9606 to determine a calculationdefinition in response to at least one formula of the document. Theexample procedure 9600 further includes an operation 9608 to generate anexecutable object in response to the calculation definition, anoperation 9610 to interpret a user focus location, and an operation 9614to direct execution of the executable object in response to the userfocus location. An example procedure 9600 further includes an operation9612 to predict a second user focus location, and where the operation9614 to direct the execution of the executable object is further inresponse to the second user focus location.

An example procedure 9600 further includes the operation 9612 to predictthe second user focus location in response to at least one of: a statevalue; a previous operation sequence of a user accessing the document; aprevious operation sequence of a user; a relationship value between theuser focus location and a data value within the document that is notwithin the user focus location; and a processing time to hydrate a datavalue within the document that is not within the user focus location. Anexample operation 9612 to predict the second user focus location isfurther in response to at least one of: a document type value; a datatype value of a data value within the document that is within the userfocus location; and a data type value of a data value within thedocument that is not within the user focus location.

An example operation 9612 to predict the second user focus location isfurther in response to at least one of a user device type and/or a userdevice resource description. An example procedure 9600 further includesthe operation 9614 further including dividing operations of theexecutable object between at least two of: the document server, theclient computing device, and at least one of workflow server.

Previously known data access, visualization, and presentation tools(collectively—visualization tools (VTs)) suffer from a number ofdrawbacks. Visualization access to the data in previously known VTs isstatic, where the configured view for the data is fixed, even where thedata itself is dynamically updated. For example, a user creates a graph,chart, or other visualization element (collectively—VEs) linked to therespective data. During the process of creating the VE, the userspecifies the formatting (e.g., units used, colors, line types, etc.)and the chart generates or updates to reflect the data. Changes to theunderlying data can be updated in the chart if properly linked to theVE—for example if the referencing to the data contemplates that new rowsof data may be added, and/or if the link to the data is live. Often,addition of new data will not result in an update to the VE, leavingundepicted data elements within the data set. The user may not recognizethat not all data is presented without a detailed check of theunderlying data. Additionally, view elements such as chart types,colors, lines, etc. are not readily update-able, and rely on userinteraction that is both quantitatively high (e.g., a large number ofoperations from the user) and sophisticated (the user needs highlyspecific knowledge of the VT to make changes). For example, the VT maypresent the user with a large template selection (bar graph, scattergraph, columns, etc.) with little guidance as to which template may berelevant, and/or change operations require detailed knowledge of the VT(right-clicking elements and selecting appropriate properties to change,browsing through property tabs related to the VE, and/or working in acoded back-end environment such as C++, SQL, and/or Visual Basic toenact changes to the VE).

The creation of multiple VEs with a contextual similarity is difficultin previously known VTs, requiring the re-creation of a VE throughrepetitive operations, copying-and-pasting a VE and manually updatingreferenced data for each copied VE, or copying entire files andreplacing copies of the prior data with updated data. Each of thesepresently known processes include multiple operations by the user thattake time away from analyzing the actual data, present multipleopportunities for the user to make an error which may not be easilydiagnosed, and/or require significant training and sophistication toenable even a basic data visualization capability.

Still further, presently known VTs maintain separation between thelinked data and the VE. VEs provide for powerful tools to analyze data,and trends, errors, or other features of a data set may be more readilynoticed in a VE than in a view of the raw data. The separation betweenthe linked data and the VE in presently known VTs require severaloperations from a user to make adjustments to the data and see theresult of the adjustments, such as accessing the raw data, editing it,and checking the VE for the effects of the edit.

Additionally, presently known VTs maintain a static and limited accessview to the data itself. For example, to present aggregated data in apresently known VT, an aggregated data set must be explicitlycreated—whether as a tangible data table or virtually through coderelated to the VE being prepared. Further, data utilization, such as:action based on visualized data; operations between multiple data sets(whether multiple locations within a data set or multiple selectionsfrom more than one data set); multi-level access to data (e.g.,accessing both parent and child data); and/or operating formulas ondata; requires the user to specifically code in the behavior (whetherthrough actual constructed code, selections utilizing a number of menus,and/or creation of artificial dedicated data sets to provide a view ofthe desired resultant data, which artificial dedicated data sets requireupdating or re-creation if they need to reflect updates to the sourcedata).

Accordingly, tools and improvements are desired to provide for moreconvenient and powerful user access to data, VE, and analysis, and thatis accessible and intuitive to an ordinary user without requiringspecialized knowledge for operating an application and/or coding asolution.

Typical web applications are often made up of a database and a frontendfor that database. The frontend for the database often contains a set ofcontrols that users can use to control what the application does. In anexample, Instagram is database of photos that get surfaced to usersthrough a mobile and web interface. That interface gives users a fewcontrols (e.g., a “like” button, a comment form field, a share button,and so forth) to enable users to conduct a set of actions.

In embodiments, according the methods and systems of the presentdisclosure, tables may function like lightweight databases that allowusers to manipulate data using controls that are commonly found only insoftware applications and not within document surfaces, such as theunified document surface, as described herein. For example, reportingsoftware commonly contains a control for users to toggle a “date” rangeof the data they are viewing. In embodiments, according the methods andsystems of the present disclosure, a creator of a document may beprovided with the ability to create this date range control and bind itto objects of interest to them (e.g., tabular data, other controls,formulas, and the like).

In embodiments, controls, as described herein, extend the functionalityof a document surface by providing functionality that is not found intraditional document surfaces and may provide non-programmers (e.g.,document users) the ability to provide their users control over allaspects of a document that is not possible in a traditional document.Often users of other document platforms piecemeal together these typesof controls by making users enter a certain value in a cell of aspreadsheet, and then drive downstream actions from that singlespreadsheet cell. But this is a less than optimal approach, and usersoften are more comfortable with the form factor of traditional controls(e.g., in other apps) and end up confused about where and how to enterdata, or end up entering data incorrectly. In contrast, the controls ofthe methods and systems of the present disclosure may be accessible tousers via formula language, as described herein, that allows a user tocompose the individual parts of wanted controls together.

In embodiments, according the methods and systems of the presentdisclosure, each control may have a name, a value and other optionalparameters. The name of a control may enable a user to access thatcontrol in the formula language, as described herein. The value of acontrol may enable a user to access and use that value in other placesthroughout a document.

In embodiments, users may add controls to a canvas (i.e., with a unifieddocument surface) and to a table itself.

In embodiments, users may use values from a control to drive otheractions in a document.

Referencing FIG. 11, a system 1100 is schematically depicted including adocument server 1102 that communicates at least a portion of a document1106 to a client computing device 1104, the document 1106. The document1106 includes a data element 1108, which may include at least a portionof the document 1106, source data 1124 (e.g., data linked or referencedin the document 1106), and/or information derived from the document 1106or source data 1124. Source data 1124 may be in any location—the examplesystem 1100 includes source data 1124 within the document 1106, on thedocument server 1102 in a location separate from the document 1106,and/or outside the document server 1102 (e.g., with a third partyprovider, on a database, and/or a website). In certain embodiments, thedata element 1108 is included within the document 1106 and does notinclude source data 1124. In certain embodiments, the data element 1108includes the entire document 1106. The example system 1100, and otherdepictions throughout the present disclosure, provide for non-limitingillustrative examples of data and data flows (e.g., with arrowsdepicting certain directional flow). The data and data flows depictedare provided for certain example embodiments, but data flow may be inany direction, and data may be present anywhere within the describedsystems and examples. Where a particular system element utilizes data,the data is accessible to the system element, but may be located on asame device (e.g., the client computing device 1104) and/or communicatedto the system element utilizing the data.

The example system 1100 further includes a client computing device 1104having a user display circuit 1110 that provides a first view 1114 inresponse to the data element 1108, where the first view 1114 includes atleast a portion of the data element 1108. The description including afirst view 1114 and second view 1122 herein is utilized to illustratecertain principles of the present disclosure. From the perspective ofthe user 814, the first view 1114 and the second view 1122 may be adepiction of a portion of the data element 1108 at separate points intime, and may be on the same display device. In certain embodiments, anupdate of underlying information in response to a user visualizationselection 1118 or other information may result in a first view 1114 thatis identical to the second view 1122, depending upon operationsperformed and the result of the updated sorting, filtering, linking,referencing, formatting, aggregating, or other operations. In certainembodiments, the view provided to the user 814 is directed to a portionof the data element 1108 (e.g., based on the current portion of thedocument 1106 the user 814 is viewing), and updates to operations hereinmay affect portions of the document 1106 not presently visible to theuser 814, resulting in a first view 1114 and second view 1122 that areidentical, at least until an affected portion of the document 1106 isaccessed by the user 814.

Example and non-limiting user display circuits 1110 include input and/oroutput devices interacting with the user 814 (e.g., a monitor, screen,touch sensitive display, mouse, keyboard, a voice interacting device, awebsite or webserver accepting display input and/or publication of theviews 1114, 1122, a printer, and/or a non-transient memory locationhaving input and/or output data), devices communicating with such inputand/or output devices (e.g., drivers, cards, a network, internet, ormobile communication device), executable instructions stored on anon-transient computer readable medium wherein the instructions whenexecuted cause a computer to perform one or more operations of the userdisplay circuit 1110 and/or communications with one or more of thepreceding devices, and/or a computing device accessing suchinstructions. In certain embodiments, the first view 1114 and secondview 1122 are depicted as interactive with the user 814, for example asa portion of the document 1106 currently viewed by the user 814 andeditable by the user 814 according to an application accessing thedocument 1106 or portions thereof.

The example client computing device 1104 includes a visualization tool(VT) circuit 1112 that determines a visualization element (VE) 1116 inresponse to the data element 1108, and further in response a uservisualization selection 1118 and/or a user context value 1120. A uservisualization selection 1118 includes any operations by the user 814that provide for an update to the VE 1116, which may provide for anupdate to the view 1114, 1122 depending upon whether the update to theVE 1116 results in a change that would be visible to the user 814.Example and non-limiting user visualization selections 1118 include auser entry of or change to a formula, a user entry of or change to acontrol (e.g., a radio button, check box, slider tool, and/ormulti-select tool), a user drag-and-drop operation, a selection of datahaving a property to be inherited, a selection of an object having aproperty to be inherited and/or any other operation providing for achange to a format, a sorting parameter, a filtering parameter, and/oran aggregating parameter according to any descriptions herein. Exampleand non-limiting VT circuits 1112 include network communication devicescapable of accessing the other portions of the client computing device1104 and/or the document server 1102, executable instructions stored ona non-transient computer readable medium wherein the instructions whenexecuted cause a computer to perform one or more operations of the VTcircuit 1112, and/or a computing device accessing such instructions.

An example user display circuit 1110 further provides a second view 1122in response to the VE 1116 and the data element 1108. For example, wherea user visualization selection 1118 indicates that a change in the VE1116 is present or potentially present, the VT circuit 1112 determinesan updated VE 1116 based on the data element 1108, and provides a secondview 1122, changed in response to the updated VE 1116, to the user 814.The example further includes a change for the second view 1122 such as adisplay of a portion of the data element 1108 currently accessed by theuser 814, where the change includes a formatting operation, a sortingchange (e.g., sorting on a different column or set of columns for atable), a filtering change (e.g., change filtering values for thedisplayed data set), and/or an aggregating operation (e.g., group,summarize, provide a summation, provide an average, create a pivottable, and/or create a representative data view such as a chart, graph,table, or structured data arrangement).

Referencing FIG. 12, an example client computing device 1104 includesthe VT circuit 1112 further interpreting a user selection value 1202,and determining the VE 1116 in response to the user selection value1202.

An example user selection value 1202 includes a primary table 1204 and asecondary table 1206. An example VT circuit 1112 determines the VE 1116in response to the primary table 1204 and the secondary table 1206 byperforming an operation such as: applying a property (sorting,filtering, formatting, heading names, row and/or column ordering, and/oraggregating) from the primary table 1204 to the secondary table 1206;and/or applying a property to the secondary table 1206 in response tothe primary table 1204 (e.g., the primary table 1204 includes a datafield related to data on the secondary table 1206, and the VT circuit1112 aggregates, sorts, filters, or formats the secondary table 1206based on the related data field from the primary table 1204).

An example user selection value 1202 includes a row selection 1208, acolumn selection 1210, and/or a data value selection 1212. An example VTcircuit 1112 determines the VE 1116 in response to the row selection1208, the column selection 1210, and/or the data value selection 1212(“selected element”) by performing an operation such as: applying aformatting of the selected element, sorting in response to the selectedelement, filtering in response to the selected element, and/oraggregating information in response to the selected element.

An example user selection value 1202 includes a data type, tag,metadata, document section, and/or data value defining one or more ofthese. An example VT circuit 1112 applies the VE 1116 (e.g., aformatting option, a sorting option, a filtering option, heading namechanges, an aggregating option, or the like) to data elements in thedocument 1106 and/or selected sections of the document in response tothe user selection value 1202. For example, a table having a certain tag(e.g., “monthly sales”) can be formatted conditionally according to theuser visualization selection 1118, and tables with similar tags canreadily inherit the VE 1116 according to the user visualizationselection 1118. It can be seen that the VT circuit 1112 allows for rapidconfiguration of data visualization options throughout the document 1106at a scope selectable by the user 814.

An example client computing device 1104 includes the VT circuit 1112determining a number of discrete options 1214 in response to the usercontext value 1120 (the number of discrete options 1214 being at leastone discrete option 1214), interpreting a user selection value 1202including at least one of the discrete options 1214, and determining theVE 1116 further in response to the user selection value 1202. Forexample, the VT circuit 1112 may respond to a user input or user context(e.g., document type, document section, template information, and/orrule-based information) to prompt a user with one or more discreteoptions 1214, and/or the user may request one or more discrete options(e.g., through a menu, toolbar option, context-sensitive menu, and/orother request), such as a check box, radio button, and/or a selectionfrom a group of selected data values. The VT circuit 1112 provides thediscrete options 1214 to the user 814, and interprets a user selectionvalue 1202 indicating which one or more of the discrete options 1214 isselected. In response to the selected discrete option(s) 1214, the VTcircuit 1112 determines the VE 1116—for example applying a filtering,sorting, aggregating, and/or formatting operation to one or more aspectsof the data element 1108, and updating the first view 1114 to the secondview 1122 accordingly.

In certain embodiments, the VT circuit 1112 determines the discreteoption(s) 1214 and/or continuous option(s) 1216 in response to a usercontext value 1120 such as a document type value 1218, a documentlocation value 1220, a prior user operation 1222, a template dataassociation value 1224, and/or a user selected data association value1226. Data association values 1224, 1226 include linking or inheritingformatting or display options or elements from associated data (e.g.,bringing in one or more formatting elements from a previously createdtable, graph, chart, and/or text; bringing in one or more formatting ordisplay options or elements from an available table, graph, chart,and/or text; and/or simply bringing in or more formatting or displayoptions or elements from an object having a desired option or element).An object as contemplated herein for linking or inheriting formatting ordisplay options or elements include any type of object associated with adocument 1106 and/or source data 1124, including at least: a table; atable row; a table column; a chart of any type; a figure of any type; apicture; an audio, visual, or audiovisual element; a document sectionreference; a data link or reference; a text value; a section of selectedtext; a tag (e.g., a user-provided explicit, tag, an arbitrary,non-user-generated tag, and/or implicit); metadata; portions or elementsof any of these; and combinations of these. In certain embodiments, aformatting or display option or element is linked or inherited, and achange is made to the formatting or display option or element in thechild object, and a data management circuit 1126 (reference FIG. 11)provides a change to the parent object in response to the change in thechild object. For example, a text font color change in the child objectfrom green text to red text may be propagated to the parent object tochange text related to the inherited values from green text to red text.In certain embodiments, propagation to the parent object may be made inresponse to user preferences, user permissions, user authorizations,rules (e.g., explicitly defined, from an authorized administrator,and/or derived from a template repository of rules), and/or may furtherinclude prompts to the user 814 to authorize the propagation of theformat or display option or element to the parent object.

Data association values 1224, 1226 may include associated data of a sametype (e.g., a table associated with a table, where certain formattingoptions such as text fonts, sizes, and/or colors, and/or column widths,or other display options such as sorting or filtering, are to beinherited) or of distinct types (e.g., a table associated with a graph,where one or more formatting options that are mutually available are tobe inherited—such as formatting of text, aggregation logic such asmatching of a column in a chart to an aggregation logic of the table,and/or sorting order for the table responsive to a data sorting in thechart). Where a data management circuit 1126 propagates format ordisplay options or element to the parent object, the propagated optionsmay be of the same type or of distinct types. The example VT circuit1112 further interprets a user selection value 1202 including one ormore of the discrete options 1214, and/or one or more of the continuousoptions 1216, and determines the VE 1116 further in response to the userselection value 1202.

In certain embodiments, the VT circuit 1112 determines one or morediscrete options 1214 and/or one or more continuous options 1216 inresponse to a time value 1232, a selected range of time values 1232, adata field value 1230, a selected range of data field values 1230, adata reference value 1234, and a selected range of values 1236corresponding to the data reference value 1234. An example discreteoption 1214 and/or continuous option 1216 includes a time display, wherethe user control input 1228 includes at least one time value 1232 or aselected range of time values 1232 from the time display. An examplediscrete option 1214 and/or continuous option 1216 includes a data fielddisplay, where the user control input 1228 includes at least one of aselected data field value 1230 corresponding to the data field display,or a selected range of data field values 1230 corresponding to the datafield display. An example discrete option 1214 and/or continuous option1216 includes a data reference value 1234, where the user control input1228 includes a selected data reference value 1234 and/or a selectedrange of values 1236 corresponding to the selected data reference value1234. For example, a user 814 may enter a reference data value forlinking or inheriting formatting or display options or elements, and theVT circuit 1112 provides one or more potentially matching options basedon data in the data element 1108, the document 1106, and/or the sourcedata 1124 (e.g., in a suggested drop-down list, as a multi-select tool,as a slider tool, as a table, and/or as a structured data element), andthe user control input 1228 includes an entry (e.g., a selection of avalue, a selection of a range of values, and/or an interaction with atool such as setting a slider value) from the user 814, where the VTcircuit 1112 updates the VE 1116 in response to the user control input1228. In certain embodiments, data related to and/or corresponding tothe data reference value 1234 is utilized for updating the VE 1116rather than the data reference value 1234. For example, the user 814 maybe working with a data set such as a particular report (e.g., an annualreport, a quarterly report, a sales report, and/or a recruiting report),and updates formats or display options for the data and/or output of thereport by selecting a name of a previous report (e.g., user references“annual report”, and the VT circuit 1112 displays discrete options 1214and/or continuous options 1216 of available annual reports within thedata element 1108, the document 1106, and/or the source data 1124 forselection by the user via a user selection value 1202 and/or usercontrol input 1228), where the updating of the formats or displayoptions for the data is performed by the VT circuit 1112 pulling theformatting, display options, or both, from one or more previous reportsin response to the user selection value 1202 and/or user control input1228, the VT circuit 1112 updating the VE 1116, and as appropriateupdating the view 1114, 1122 when the user 814 accesses a portion of thedata element 1108 having display options affected by the updated VE1116.

Continuous, as used herein, should be understood broadly. Withoutlimitation, a continuous option 1216 includes an option that is:continuous (e.g., lacking discrete divisions in available values); thatis based on a floating point value (e.g., single precision, doubleprecision, or otherwise); that includes a multiplicity of discreteoptions, where the discrete options are numerous enough that at leastone of the following conditions is present: 1) the differences betweenvalues are not quantitatively apparent to the user, 2) the differencesbetween values are much smaller than the available range of the data(e.g., less than 10%, less than 5%, and/or less than 1% of the availablerange of the data), and/or 3) there are more than a specified number ofdiscrete options available (e.g., more than 10, more than 25, more than128, more than 256, and/or more than 1024); that includes a divisionbetween options such that at least one of the following conditions ispresent: 1) the differences between values allow for a minimum graphicalmovement of the selection object (e.g., one pixel, two pixels, 5 pixels,a number of pixels visibly apparent to the user), 2) the differencesbetween values allow for a selectable division of the underlying data(e.g., to the nearest dollar, nearest day, nearest hour, and/or perletter of the alphabet), and/or 3) the differences between values allowfor a selectable precision on output response of the control (e.g., tothe nearest dollar, nearest day, nearest hour, a discernable change incolor, and/or per letter of the alphabet). In certain embodiments, theincrement of the control (whether linked to a discrete option 1214 or acontinuous option 1216) may be varied by the user 814, for exampleallowing the user to zoom in, zoom out, fix to a set step size, orotherwise change the increment of the control. A control may provide fora continuous option 1216 for one purpose, and provide for a discreteoption 1214 for a different purpose. A control may provide for acontinuous option 1216 in certain data ranges, and provide for adiscrete option 1214 in other data ranges. A control may provide for acontinuous option 1216, and provide for disallowed values, for exampleeven within the range of continuous options 1216. One of skill in theart, having the benefit of the disclosure herein, can readily determinewhether and under what conditions a control includes a discrete option1214 or a continuous option 1216, and the increment values of thecontrol. Certain considerations for determining the discrete orcontinuous nature and increment value of a control include thecharacteristics of the underlying data, the desired output parameters(e.g., filtering, aggregation, formatting, and sorting), the purpose ofthe output parameters, and/or the characteristics and performance (e.g.,screen display, processing power, memory availability, and/or networkspeed) of the client computing device 1104 and/or communication betweenthe client computing device 1104 and the document server 1102. Incertain embodiments, the user 814 may be provided with options to adjustcontrol parameters (e.g., minimum value, maximum value, step size,allowable ranges or values, disallowed ranges or values, data options,and/or formatting options). Example and non-limiting controls include: aswitch control; a multi-state switch control; a multi-picker control; anoption list picker control; a dropdown picker control; a numeric slidercontrol; a date slider control; a time slider control; a map pickercontrol; a text box control; a validated text box control; a structuredtext box control; a card layout control; a drawing shape control; amedia visual control; a table renderer control; a chart control; a shapeset control; a numeric range slider; and/or a date range picker control.

An example VT circuit 1112 further determines the user visualizationselection 1118 in response to a user control input 1228. Example andnon-limiting user control inputs 1228 to determine the uservisualization selection 1118 include a user selection value 1202 such asone or more discrete options 1214 and/or one or more continuous options1216. Referencing FIG. 13, an example VT circuit 1112 further determinesat least one profile value 1302 in response to the user control input1228. Example and non-limiting profile values 1302 include a sortingprofile 1304, a data hierarchy profile 1306, a filtering profile 1308,an aggregating profile 1310, and/or a formatting profile 1312. Forexample, a selected object such as a table, structured data, a figure,and/or a chart, may have a sorting profile (e.g., sorting logic, columnpriority, high-to-low or low-to-high organization, etc.) and the VTcircuit 1112 determines a sorting profile 1304 for a target data object(of the same or a distinct type from the selected object), anddetermines the VE 1116 in response to the sorting profile 1304.

Referencing FIG. 14, an apparatus 1400 having a VT circuit 1112interacting with a user 814 is depicted schematically. An exampleapparatus 1400 may be included as a portion of a system 1100. Theexample apparatus includes a VE 1116 including a graph 1402, a chart1404, a structured data view 1406, a display of text 1408, a formatoption 1410 for any of the preceding, and/or a format option 1410 for atleast a portion of any of the preceding. The example apparatus 1400includes the VE 1116 having a format option 1410 for at least a portionof a display of text 1408.

Referencing FIG. 15, an example apparatus 1500 includes a VT circuit1112 that determines the VE 1116 in response to a user entered formula1502. In certain embodiments, the user entered formula 1502 may be anytype of formula, and further may include references to any tags,identifiers, object names, or the like anywhere within the data element1108, the document 1106, and/or the source data 1124. Additionally oralternatively, the user entered formula 1502 may be commenced with amenu selection, a toolbar selection, a button selection, and/or entry ofspecific characters or character sequences. A user entered formula 1502may be displayed directly, an output or result of the formula may bedisplayed, and/or the user entered formula 1502 may be hiddencompletely. The display options for the user entered formula 1502 mayvary with the operations of the user 814, for example and withoutlimitation the user entered formula 1502 may be: displayed in a firstmanner when selected (e.g., allowing the user to edit the formula) andin a second manner when not selected (e.g., displaying an output of theformula and/or hiding the formula); and/or displayed in a first mannerduring editing of the data element 1108 and/or document 1106, anddisplayed in a second manner for printing, publishing, or other outputoperations of the data element 1108 and/or document 1106. In certainfurther embodiments, the VT circuit 1112 further determines at least oneprofile value 1302 in response to the user entered formula 1502. Exampleand non-limiting profile values 1302 include a sorting profile 1304, adata hierarchy profile 1306, a filtering profile 1308, an aggregatingprofile 1310, and a formatting profile 1312. The example VT circuit 1112further determines the VE 1116 in response to the profile value 1302.

An example VT circuit 1112 further interpolates between a plurality offormat options 1410 for a graph 1402, a chart 1404, a structured dataview 1406, and/or a display of text 1408. For example, linking,referencing, and/or selection of multiple format or display options orelements may create more than one applicable format option 1410 for agiven aspect of the VE 1116. The example VT circuit 1112 determines aformat or display option or element in such a situation by any one ormore of the following operations: interpolate between two applicableformatting options (e.g., —one linked display option indicates that avalue of 10 is a color blue, a second linked display option indicatesthat a value of 20 is a color yellow, and the VT circuit 1112 determinesthe value 15 will be formatted green in response to the linked displayoptions); select a closest one of the applicable formatting optionsbased on data values; provide for a weighted average of formattingoptions (e.g., where more than two applicable formatting options areavailable); provide for a higher priority one of the options (e.g., lookat the available options, and determine which has a higher priorityaccording to the nature of the underlying data, a recency of the sourceof the formatting options, a user role or title that created the sourceof the formatting options, and/or a relevancy factor for the source ofthe formatting options to the current document, data, document section,or the like that the user is working with); and/or rules applicable tothe formatting option selection such as a template or user-entered rule.The relevancy factor may be determined in response to, withoutlimitation: the type of data the user is currently working with relativeto the type of data associated with the format or display options orelements; a description of the data values indicating a level of match(e.g., current data values are closer to one data set than a second dataset); a heading, tag, or title in one or more data sets having a match;a count of a matching number of columns, data series, or other datasimilarity indications (e.g., column titles, date ranges, etc.); and/ora prompt and user selection to determine which of the formats or displayoptions is most relevant.

In certain embodiments, an example VT circuit 1112 applies a gradientformatting option 1410 to one or more aspects of the second view 1122.For example, the VT circuit 1112 determines boundary values eachassociated with a formatting option 1410 (e.g., a minimum and maximumvalue, each having an associated color), and applies gradations of theformatting option 1410 for values between the boundaries. The gradationsmay be applied according to the values between (e.g., a value close toone of the boundaries includes a formatting option 1410 having a valueclose to the boundary formatting option 1410), applied in order (e.g.,selected steps between boundary options in data sorted order, regardlessof the specific relationship of values to the boundary values, where theselected steps may be linear (e.g., equal size steps) or anotherrelationship such as logarithmic, exponential, or the like). In certainembodiments, boundary values and formatting options 1410 may be selectedautomatically (e.g., from the highest and/or lowest values), selected bya user, updated in real time (e.g., boundaries change as data updateschange the highest and/or lowest values), and/or fixed or updatedperiodically or in a user selected fashion. In certain embodiments,gradation formatting options 1410 may be extrapolated outside theboundary values, capped or limited at the boundary value formattingoptions 1410 for values that are outside the boundary values, and/or adistinct formatting option (e.g., a different color, a default color,etc.) may be applied for values that are outside the boundary values. Incertain embodiments, where values are outside the boundary values, theuser may be prompted for an action (e.g., treatment type such asextrapolation, capping, applying a distinct format, and/or moving theboundary out to a new limit), and/or automatic action may be taken(e.g., according to defaults, rules defined by a user, template, and/oradministrator, according to a data type (e.g., font colors capped at theboundaries, while font sizes are extrapolated)) outside the boundaryvalues. In certain embodiments, more than one gradation may be appliedto a data element 1108, for example both a font size and a font colormay have gradations. The described examples of a gradient formattingoption 1410 and operations related thereto, are non-limiting examplesfor purposes of illustration. Without limitation, examples of gradationformatting options 1410 include font colors, font sizes, line thicknessvalues, highlighting and/or background colors, line colors, chartcolors, and/or data grouping values (e.g., a data set grouped bygraduated time frames such as days near a first boundary and years neara second boundary). One of skill in the art, having the benefit of thedisclosure herein and knowledge ordinarily available contemplating aparticular system, can readily determine gradient formatting options1410 and related operations thereto. Example and non-limitingconsiderations to determine gradient formatting options 1410 and relatedoperations thereto include the type of data element 1108, the type ofdocument 1106, characteristics of the user 814, purpose of the secondview 1122, the type of formatting utilized for the gradient formattingoption 1410, and/or the size and/or variability within a graduated dataset (either by design or as observed based on real-time data).

An example VE 1116 includes a graph 1402 and/or a chart 1404, and the VTcircuit 1112 further adjusts the second view 1122 in response to a userchange input 1504. For example, a user 814 may adjust a graph 1402 or achart 1404, such as by moving a data point, bar, column, line, etc. onthe graph 1402 or chart 1404, changing a format of a point or dataseries on the graph 1402 or chart 1404, changes a linked inheritance tothe graph 1402 and/or chart 1404 (e.g., change a reference “format likethe 2009 annual report” to a reference “format like the 2011 annualreport”, where the reference herein is described schematically). The VTcircuit 1112 further adjusts the second view 1122 in response to theuser change input 1504—for example applying a formatting or displaychange to other elements of the graph 1402 or chart 1404 that were notdirectly changed by the user based on the user change input 1504;updating formatting options and the display of the graph 1402 and/orchart 1404 in response to the linked inheritance change; and/or updatinga display of an output table 1506 (e.g., source data for the graph 1402and/or chart 1404, and/or a report generated in response to the graph1402 and/or chart 1404) based on the user change input 1504 (e.g., userdrags a data point from a value of 1250 to a value of 1275 on the chart,and the corresponding value on the table is changed) where a portion ofthe table is displayed to the user and accordingly the second view 1122is updated. In certain embodiments, the VT circuit 1112 may prompt theuser to confirm the adjusting of the second view 1122 in response to theuser change input 1504. An example user change input 1504 includes auser interaction with a graphical element of the one of the graph 1402or the chart 1404.

An example VE 1116 includes an output table 1506 and/or a structureddata view 1406, and the VT circuit 1112 further adjusts the second view1122 in response to a user change input 1504. Example and non-limitingstructured data views 1406 include: a table providing a view of one ormore data elements; a pivot table providing aggregated views of one ormore data elements; a summary generated to provide information of one ormore data elements (the summary may include multiple summary aspectssuch as sums, averages, interpolations and/or extrapolations, trends,and/or may include prose, graphs, tables, charts, and combinations ofthese); a selected data display of any one or more of the preceding(e.g., a card with selected information, a generated document withselected information, and/or a section of the document 1106 withselected information).

An example system 1100 includes a data management circuit 1126 thatupdates the data element 1108 in response to the user change input 1504.In certain embodiments, a user change input 1504 to a graph 1402 orchart 1404, which may be a graphically entered user change input 1504(e.g., dragging a data point, bar, column, etc. to a differentlocation), is entered by the user 814 and the data management circuit1126 propagates changes to the data element 1108, document 1106, and/orsource data 1124 in response to the user change input 1504. In certainembodiments, propagation to the data element 1108, document 1106, and/orsource data 1124 may be made in response to user preferences, userpermissions, user authorizations, rules (e.g., explicitly defined, froman authorized administrator, and/or derived from a template repositoryof rules), and/or may further include prompts to the user 814 toauthorize the propagation of the format or display option or element tothe parent object.

Referencing FIG. 16, an example apparatus 1600 includes a VT circuit1112 that determines the user change input 1504 in response to adrag-and-drop operation 1602. A drag-and-drop operation 1602 as usedherein should be understood broadly. A drag-and-drop operation 1602includes, without limitation: dragging an object, a data value, and/orportions thereof from a first location to a second location (e.g.,utilizing a mouse, touch screen, or other user input device);referencing an object, a data value, and/or portions thereof at a firstlocation, and referencing a second location; dragging an object, a datavalue, and/or portions thereof onto a second object, data value, and/orportions thereof; and/or referencing an object, a data value, and/orportions thereof, and referencing a second object, data value, and/orportions thereof, thereby completing the drag-and-drop operation 1602.

An example VT circuit 1112 is further adjusts the second view 1122 byre-sorting at least a portion of the second view 1122—for examplesorting a table in response to a sorting of an associated table, wherethe associating is provided at least partially by the drag-and-dropoperation 1602. An example VT circuit 1112 changes a hierarchy of atleast a portion of the second view 1122—for example providing a firsttable created with a first hierarchy (e.g., a first primary table and asecond secondary table, wherein the hierarchy indicates a primacy of thedata organization, column headings, aggregation categories, etc.), andthrough a drag-and-drop operation 1602 switching to a second tablecreated with a second hierarchy (e.g., switching the primary andsecondary to the first table being secondary, and the second table beingprimary). An example VT circuit 1112 adjusts the second view 1122 byfiltering at least a portion of the second view 1122—for exampleapplying a filtering criteria from a first object to a target object inresponse to the drag-and-drop operation 1602. An example VT circuit 1112adjusts the second view 1122 by aggregating data including at least aportion of the second view 1122—for example by creating a pivot table,selecting aggregating categories, and/or creating a related aggregationset (e.g., utilizing the same aggregation criteria, utilizing a parallelaggregation criteria) from a first object to a target object in responseto the drag-and-drop operation 1602. An example VT circuit 1112 adjuststhe second view 1122 by inheriting a format from a portion of the dataelement 1108 and applying the inherited format to at least a portion ofthe second view 1122—for example the user 814 drags a first object to atarget object (or the target object to the first object), and the VTcircuit 1112 applies one or more formatting aspects of the first objectto the target object in response to the drag-and-drop operation 1602.The applied formatting aspects may be according to a selection, rule, ortemplate setting (e.g., apply font settings), applicable formattingsettings that are common between the first object and the target object.The first object and the target object may be of the same or distincttypes. The updates of any sorting, formatting, aggregating, hierarchychanges, and the like, includes, in certain embodiments, applyingaspects of the first object which are applicable to the target object,and/or analogizing aspects of the first object to target object (e.g., achart dragged onto a table may allow for updating of certain aspectsapplicable to both, and other aspects that may be analogized such astable column headings changed to match category headings from the chart,etc.).

An example VT circuit 1112 adjusts the second view 1122 by inheriting avisualization parameter 1606 from an object 1604 selected in thedrag-and-drop operation 1602, and applying the inherited visualizationparameter 1606 to at least a portion of the second view 1122. Avisualization parameter 1606 can include any aspect of an object thatresults in a potential change to the view 1114, 1122, such as a formatoption, a sorting option, a filtering option, an aggregating option,and/or an object type selection (e.g., table, structured data, chart,graph, text, etc.). Example and non-limiting objects 1604 include a datavalue, a graph, a chart, a table, a table row, and/or a table column.Example and non-limiting visualization parameters 1606 include a sortingdescription, a filtering description, a formatting description, anaggregation description, and/or a display value description.

A number of procedures for performing certain operations to change aview 1114, 1122 of a data element 1108 are described following.Operations are illustrative and non-limiting, and may be re-ordered,divided, and/or combined in any manner to perform similar functions, aswill be understood to one of skill in the art having the benefit of thedisclosures herein. In certain embodiments, one or more operations maybe performed by components of a system such as the system 1100.

Referencing FIG. 17, an example procedure 1700 includes an operation1702 to access a data element, and an operation 1704 to provide a firstview in response to the data element, where the first view comprising atleast a portion of the data element. The example procedure 1700 furtherincludes an operation 1706 to determine a visualization element (VE) inresponse to the data element, and further in response to a uservisualization selection and/or a user context value. The exampleprocedure 1700 further includes an operation 1708 to provide a secondview in response to the VE and the data element. Example andnon-limiting operations to determine the user visualization selectioninclude: interpreting a user selection value including a primary tableand a secondary table; interpreting a user selection value including arow selection, a column selection, and/or a data value selection;determining one or more discrete and/or continuous options in responseto the user context value, and interpreting a user selection valueincluding at least one of the discrete and/or continuous options;determining a number of discrete and/or continuous options in responseto at least one parameter such as: a document type value, a documentlocation value, a prior user operation, a template data associationvalue, and/or a user selected data association value, and interpreting auser selection value including at least one of the discrete and/orcontinuous options; and/or determining a number of discrete and/orcontinuous options in response to at least one parameter such as: a timevalue, a selected range of time values, a data field value, a selectedrange of data field values, a data reference value, and a selected rangeof values corresponding to the data reference value.

Referencing FIG. 18, an example procedure 1800 further includes anoperation 1802 to determine a user visualization selection in responseto a user control input, and/or where the user control input includes auser selection value from a number of discrete options. The exampleprocedure 1800 further includes an operation 1804 to determine at leastone profile value in response to the user control input, where theprofile value includes a profile value such as: a sorting profile, adata hierarchy profile, a filtering profile, an aggregating profile,and/or a formatting profile, and the procedure 1800 further includes theoperation 1706 to determine the VE further in response to the profilevalue. An example operation 1804 further includes determining the atleast one profile value in response to at least one discrete and/orcontinuous option. Example and non-limiting continuous options include atime display, a data field display, a data reference value, and/or auser control input. Example and non-limiting VEs include: a graph, achart, a structured data view, a display of text, a table, a table row,a table column, a table heading, a format option for any of thepreceding, and/or a format option for at least a portion of any of thepreceding.

Referencing FIG. 19, an example procedure 1900 includes an operation1902 to determine a user entered formula, and where the operation 1706includes determining the VE in response to the user entered formula. Incertain embodiments, the operation 1804 includes determining the profilevalue(s) in response to the user entered formula.

Referencing FIG. 20, an example procedure 2000 includes an operation2002 to interpret a user change input, and an operation 2004 to updateone of the first view 1114, the second view 1122, and/or a data element1108 in response to the user change input. An example procedure 2000further includes the VE being one of a graph or a chart, and adjustingthe second view in response to the user change input. An exampleprocedure 2000 includes the user change input being a user interactionwith a graphical element of the graph and/or chart. An example procedure2000 includes the VE being an output table and/or a structured dataview, and the operation 2004 to update or adjust the second view inresponse to the user change input. An example procedure 2000 includesthe operation 2004 further including adjusting or updating the dataelement 1108 in response to the user change input. An example procedure2000 further includes the user change input being a drag-and-dropoperation.

An example procedure 2000 includes the operation 2004 to adjust thesecond view being an operation such as: re-sorting at least a portion ofthe second view; changing a hierarchy of at least a portion of thesecond view; filtering at least a portion of the second view;aggregating data comprising at least a portion of the second view;inheriting a format from a portion of the data element and applying theinherited format to at least a portion of the second view; and/orinheriting a format from an object selected in the drag-and-dropoperation and applying the inherited format to at least a portion of thesecond view. An example operation 2004 to adjust the second viewincludes inheriting a visualization parameter from an object selected ina drag-and-drop operation and applying the inherited visualizationparameter to at least a portion of the second view. Example andnon-limiting objects selected in the drag-and-drop operation include: adata value, a graph, a chart, a table, a table row, and/or a tablecolumn. Example and non-limiting visualization parameters include: asorting description, a filtering description, a formatting description,an aggregation description, and/or a display value description.

Referencing FIG. 21, an example operational sequence 2100 is depicted,illustrating certain operations for a procedure to provide a second view1122 and/or adjust the second view 1122. In certain embodiments, anyaspects of the present disclosure, including systems, apparatuses,devices, circuits, and/or procedures, may be utilized to perform theexample operational sequence 2100. The sequence 2100 includes a firstdepiction 2102 of various system elements, including a user controlinput 1228, a data element 1108, and a first view 1114, and a seconddepiction 2104 includes various system elements, including the usercontrol input 1228, the data element 1108, and a second view 1122. Thedepicted elements may be portions of a more complete element—for examplethe data element 1108 may include additional data including a document1106, portions of a document 1106, and/or linked or referenced sourcedata 1124. Relevant portions of the depicted elements are shown forpurposes of illustration. In the example sequence 2100, the firstdepiction 2102 includes a state of the elements at a first time, and thesecond depiction 2104 includes the state of the elements at a secondtime. While the first view 1114 and second view 1122 are depicted, theviews may additionally or alternatively be a second view in the firstdepiction 2102 and an adjusted second view in the second depiction 2104,although the naming convention and numbering of views is non-limiting,and naming conventions and numbering of views described herein are forpurposes of clarifying aspects of the present disclosure. Any operationsthat depict elements to a user 814, and update the depiction of elementsto the user 814, are contemplated herein.

The example user control input 1228 is depicted as a button selectionhaving two discrete states—such as “ON” or “OFF”, “TRUE” or “FALSE”, orother binary state values. The user control input 1228 may be a checkbox, a radio button (e.g., a collection of mutually exclusive orpartially exclusive controls), or any other type of control. Thedepiction in the example sequence 2100 is a non-limiting illustration.The underlying control may be inserted by a user 814 (e.g., through amenu option, hot-key, and/or context sensitive entry such as a mouseright-click, software-presented button, or responsive to an action suchas inserting an element), presented to the user 814, and/or alreadypresent in the document (such as by a different user, previouslyinserted by the user, as part of a template, as part of a rule, and/oras a default element). The user control input 1228 is depicted as animplementation of the control, to illustrate user interaction with thecontrol. The control reference within the data element 1108 as depictedmay be a separate element from the control itself, and/or the dataelement 1108 may be the control itself, allowing aspects of the view(1114, 1122) to be responsive to the state of the control as determinedby the user control input 1228.

The example data element 1108 includes a reference, for example as auser entered formula 1502, to the state value of the user control input1228. An example data element 1108 includes the underlying control forthe user control input 1228 (e.g., a reference or depiction of thebutton itself, and/or a value storing the current state of the button),and/or the underlying control may be positioned or stored outside thedata element 1108 (e.g., elsewhere within the document 1106, in anotherdocument (not shown), and/or within a menu or other selection displayprovided to the user 814). An example control includes a name, tag,and/or identifier, for example as part of an object model, to bereference-able in formulas and/or coding. In certain embodiments, thename, tag, and/or identifier of the control is provided to the user 814in a context sensitive manner—for example if the user right-clicks anitem, begins to filter, sort, or otherwise manipulate data, begins theentry of a formula, and/or begins to browse an object modelcorresponding to the data element 1108 and/or document 1106, wherein theview (1114, 1122) or other user-visible display is updated to providethe user 814 with a depiction of the name, tag, and/or identifier of thecontrol for convenient referencing. In certain embodiments, the view(1114, 1122) is updated to provide the user 814 with a list of options,including the name, tag, and/or identifier of the control, and/oradditionally provides a name, tag, and/or identifier of other controlsin the data element 1108 and/or document 1106, commonly used options,default options, previously used options, and/or one or more definedoptions (e.g., responsive to a template or rule). In certainembodiments, the name, tag, and/or identifier of a control is defined orset by the user 814, by a default (e.g., sequentially described and/ornumbered), or both. A given control may additionally or alternativelyhave other properties defined or set by the user 814, inherited byanother control, set by a default, or combinations of these. Example andnon-limiting properties include output data type, display type, numberof selections, number of selections allowed, one or more state valuesfor the control, and a type of the control.

The example first view 1114 depicts a data element presentable to theuser 814 as updated in response to the user control input 1228—forexample in the sequence 2100 a display of “FALSE” or “TRUE” dependingupon the value of the user control input 1228. It can be seen that anyoperations to adjust a view (1114, 1122) in response to the user controlinput 1228 may be performed, such as sorting a table or other structureddata, formatting elements of a table, text, or other data display,filtering elements of a table or other data display, aggregatingelements of a table or other data display, determining whether to showor keep hidden all or a portion of text, a table, structured data, agraph, and/or a chart. The described operations and sequence 2100 arenon-limiting examples. The sequence 2100 provides, without limitation,and example of a user 814 interacting with a discrete option 1214 toadjust the view (1114, 1122).

Referencing FIG. 22, an example operational sequence 2200 is depicted,illustrating certain operations for a procedure to provide a second view1122 and/or adjust the second view 1122. In the example sequence 2200, amulti-selection tool 2202 is depicted. The multi-selection tool 2202 maybe present in the data element 1108, the document 1106, or elsewhere,and all descriptions and properties of a control described in thedisclosure referencing FIG. 21 are incorporated herein. Themulti-selection tool 2202 includes properties of a data list (which maybe data assigned to the control, and/or linked or referenced fromelsewhere) and a property of a number of selections that may be madefrom the control. It can be seen that the multi-selection tool 2202provides for a convenient creation of a radio button (e.g., whereallowed number of selections is set to one) and/or for multipleselections limited to a selectable number. The number of allowedselections may be provided as a minimum, a maximum, an acceptable range,a defined number, or combinations of these. Additionally oralternatively, the user 814 may be prompted with selection rules for amulti-selection tool 2202, notified of errors, and/or notified ofselection rules upon an invalid entry.

The response to the multi-selection tool 2202 is depicted as a textdisplay of the data from the multi-selection tool 2202 for purposes ofillustration. However, the response may be any selected response,including at least application of sorting options for a table or otherstructured data, application of formatting options to a table, text, orother data display, application of filtering elements for a table orother data display, application of aggregating elements for a table orother data display, application of display options (e.g., show or hidecertain portions) for text, a table, structured data, a graph, and/or achart. The described operations and sequence 2200 are non-limitingexamples. The sequence 2200 provides the user 814 with a discrete option1214 to adjust the view (1114, 1122).

Referencing FIG. 23, an example operational sequence 2300 is depicted,illustrating certain operations for a procedure to provide a second view1122 and/or adjust the second view 1122. In the example sequence 2300, aslider tool 2302 is depicted. The example slider tool 2302 may provide acontinuous option 1216 accessible to the user 814 to adjust the view(1114, 1122). The slider tool 2302 is provided as an illustration of acontinuous control, however any type of control to allow for acontinuous option 1216 is contemplated herein, including withoutlimitation allowing a user to move data points on a graph, adjust bars,lines, columns, or pie slices on a chart, allowing a user to set anumber value, allowing a user to set a letter value, and/or allowing auser to set a time, date, or date/time value.

In the example sequence 2300, at the first depiction 2312 the slidertool 2302 includes a minimum value 2304, a maximum value 2308, and acurrent value 2306. The current value 2306 may be a value previously setby the user 814 or another user, a default value, a predetermined value,or the like. In certain embodiments, the current value 2306 mayinitially be set by underlying data—for example a minimum data value, amaximum data value, and/or an average data value (any type of average).The user control input 1228 is depicted in the example as set at thecurrent value 2306, and in the example the data element 1108 is linkedto the current value 2306. The sequence 2300 includes a first view 1114responsive to the user control input 1228, for example providing anoutput for display that is filtered, sorted, aggregated, formatted,and/or has elements of data displayed or hidden in response to the usercontrol input 1228. In the example sequence 2300, at the seconddepiction 2314, the slider tool 2302 includes a second current value2310, for example as set by the user control input 1228. The sequence2300 includes the second view 1114 responsive to the user control input1228 utilizing the second current value 2310, for example providing anoutput for display that is filtered, sorted, aggregated, formatted,and/or has elements of data displayed or hidden. The usage of thecurrent value 2306 and/or second current value 2310 in providing theview (1114, 1122) may be defined by the user, according to a documenttemplate, and/or according to a previous operation

Without limitation, controls may be present on a document surface (e.g.,in-line in a document 1106, in a section of a document, on a canvas orgeneral portion of a document), may be present within a specific elementof a document (e.g., as a feature of a graph or chart, within a column,row, or data element of a table, within a field of a structured dataset), and/or may be linked or referenced information relative to thedocument (e.g., within source data 1124 accessible from the document1106, within a portion of the document 1106 not necessarily intended fordisplay and/or within metadata for the document). The described controlsettings are non-limiting examples. An example control includes acontrol element present in a first column of a table, and a secondcolumn of the table having information created at least partially inresponse to the first column of the table. For example, a first columnmay include a check box, radio button, multi-select tool, slider tool,or other control, and a second column includes information created atleast partially in response to a value of the control in the firstcolumn of the table. In the example, certain views (1114, 1122) of thedocument may display the second column but not the first column—forexample another user of the document, a printed form of the document, apublished form of the document, an export of the document, or otherdisplay of the document may display the second column but hide the firstcolumn, provided for a convenient display, filtering, sorting,aggregation, and/or formatting of linked information formatted accordingto a preference of the user 814.

Another example control includes a first column having a date selectioncontrol (e.g., allowing a user 814 to define a data range in the firstcolumn, such as “previous 7 days”, “previous 30 days”, a beginning andending date, or other date selection criteria) and a second columnhaving a display value determined in response to the first column (e.g.,aggregated data over the selected date period such as sales, hires made,incidents, and/or a display of the relevant dates). In the example,second column additionally or alternatively includes information outsidethe first column, such as linked data, a table, another column withinthe table, and/or source data 1124. The example provides for aconvenient display, filtering, sorting, aggregation, and/or formattingof linked information formatted according to a preference of the user814.

Referencing FIG. 34, an example system 3400 includes a first computingdevice 3402 communicatively coupled to a second computing device 3404,where the example first computing device 3402 includes a document serverthat communicates a data value 3412 to the second computing device 3404.An example data value 3412 includes at least a portion of the document3406. An example system 3400 includes the document 3406 and/or the datavalue 3412 including, linking, and/or referencing source data 3430.Example and non-limiting source data 3430 may be within the document3406, outside the document 3406 but within the document server 3402,and/or external to the document server 3402, such as on a website,database, network location, and/or cloud server.

The example second computing device 3404, which may be a clientcomputing device, includes a user notification rules circuit 3408 thatinterprets a user notification profile value 3410. In certainembodiments, the user notification rules circuit 3408 is on the clientcomputing device (e.g., where user sets up a first client computer tonotify at a second client computer, such as a mobile device). In certainembodiments, the user notification rules circuit 3408 is additionally oralternatively on a document server, a client device of another user, orin another location. In certain embodiments, the second computing device3404 (and/or any other computing device, server, and/or circuitdisclosed herein) is a logical grouping of system components to supportcertain operations, with certain operational aspects performed on aclient device, and other operational aspects performed on a server. Theexample user notification profile value 3410 includes a notificationtrigger value 3414 and/or a notification response value 3416. Theexample second computing device 3404 further includes a data managementcircuit 3418 that interprets the data value 3412, a user notificationcircuit 3420 that determines whether an event trigger 3422 has occurredin response to the notification trigger value 3414 and/or the data value3412, and a user interaction circuit 3424 that provides a notification3426 to a user 814 in response to the event trigger 3422 and thenotification response value 3416.

The example system 3400 provides for a user 814 to configure anotification trigger value 3414, for example a change in the document3406, the source data 3430, the data value 3412, and/or for any otherselected event, and to configure a notification 3426 according to thenotification response value 3416—for example a notification deliverymethod, notification type, or the like. In certain embodiments, the usernotification profile 3410, notification trigger value 3414, and/or thenotification response value 3416 may be set according to defaults (e.g.e-mail the user 814 when tagged data changes); according to rules suchas in a template rules document; rules set by the user 814, and/or rulesset by an administrator (not shown); and/or rules provided by anotheruser in the system accessing the document 3406.

An example notification trigger value 3414 includes a keyword, where theuser notification circuit 3420 further determines whether the eventtrigger 3422 has occurred by determining whether another user hasentered, edited, and/or deleted the keyword in the document 3406. Forexample, the usage of a keyword allows the user 814 to be notified whena word of interest is entered into the document, edited in the document(e.g., to the keyword, from the keyword, or including the keyword as anintermediate edit), and/or deleted from the document. Example andnon-limiting keywords include the name of a person (e.g., the user 814),a project name, a word of interest (e.g., a technology, country,company, etc.), and/or may further include numeric values such as anumber of interest (e.g., a social security number, employee ID, phonenumber, project number, etc.) or a specific number such as an annualsales number.

An example notification trigger value 3414 includes an update value forat least one parameter in the data value 3412, in the document 3406,and/or in the source data 3430. In a further example, the usernotification circuit 3420 further determines whether the event trigger3422 has occurred by determining whether the update value indicates theat least one parameter has been updated. For example, the usage of anupdate value for a parameter allows a user 814 to tag a particular datavalue within the system 3400, and receive a notification upon an updateof the parameter. An update can include an edit of the parameter, a userfocus of the parameter (e.g. selection, mouse-over, and/or edit thatdoes not result in a change to the value), and/or a deletion of theparameter.

Example and non-limiting notification trigger values 3414 include astatus value for at least one parameter in the data value 3412, in thedocument 3406, and/or in the source data 3430. For example, determiningthe event trigger 3422 in response to the status value includes anoperation such as: determining the status value has changed; determiningthe status value has updated; determining the status value is equal to apredetermined value; determining the status value has exceeded apredetermined threshold; and/or determining the status value has fallenbelow a predetermined threshold. A status value as used herein should beunderstood broadly, and can include any status indicator such as: aspecified value (e.g., TRUE, FALSE, 1,602, COMPLETED, PENDING, etc.); anindication of a status of the parameter (e.g., edited, saved,recalculated, etc.) and/or a change in the data described by theparameter (e.g., sales change, task status change, project milestonechange, a process progress change, etc.); an indication of the status ofthe data described by the parameter (e.g., sales, task status, projectmilestone, process progress, etc.); and/or a formatting condition of theparameter. In certain embodiments, a status value for a parameterindicates an event trigger 3422 when the status does not change—forexample if the parameter is selected, focused, or edited in a mannerthat does not result in a change in value, and/or if the parameter isnot changed for a period of time the status may indicate an eventtrigger 3422 in response to the period of time expiring. The describedexamples for a status value and determining an event trigger 3422 inresponse to the status value are illustrative and non-limiting.

An example notification trigger value includes a value such as: apredetermined time period; a predetermined external event occurrence; apredetermined specific user accessing the document; a predetermined userrole accessing the document; a predetermined document object edit value;and/or a predetermined document section edit value. Predetermined asutilized herein indicates that, at the time the user notificationcircuit 3420 determines whether the event trigger 3422 has occurred, avalue for the predetermined value is available to the user notificationcircuit 3420. Predetermined values may be changed, for example by theuser 814, and/or may be changed according to rules such as in a templaterules document; rules set by the user 814, and/or rules set by anadministrator (not shown); and/or rules provided by another user in thesystem accessing the document 3406. Additionally or alternatively,predetermined values may be changed while the user 814 is accessing thedocument 3406, such as through the client computing device 3404, and/ormay be changed in response to user 814 interactions with the system 3400such as through an application (e.g., see the section referencing FIG.25), and/or in response to the notification 3426 and/or an action link3428.

An example notification trigger value 3414 includes a process statevalue such as: a recruiting process state value; a project milestonevalue; a task occurrence value; a task progression value; an orderoccurrence value; an order validity value; a design change requestvalue; and/or a problem report value. A process state value, as usedherein, should be understood broadly, and includes a qualitative and/orquantitative description of the process state, progression, currentlyactive task, and/or current operation. A given process may includemultiple operations in parallel, and according a process state value mayinclude multiple values. In certain embodiments, a process state valueis inferred from other values in the system, and/or according to rulesfor the process (e.g. whether certain data values are entered and/orhave values within specified ranges or specific values). An exampleprocess state value includes a recruiting process having defined steps,where the process state value indicates which one or more of the stepsare due (e.g., contact candidate, schedule preliminary interviews, getspecified information from the candidate, and/or schedule follow-upcontacts). In certain embodiments, a process state value indicates andevent trigger 3422 at specified operations in the process, after a timeperiod elapses where specified operations in the process have notoccurred, and/or after a time period when the process as a whole is notcompleted. In certain embodiments, the notification response value 3416changes with the state of the process—for example an event trigger 3422to contact a candidate may pull up a candidate “card” with contactinformation, a link to execute and e-mail or phone call, etc.; where anevent trigger 3422 to get information from a candidate may pull up acommunication to the candidate appropriately configured with a formletter and/or checklist for the candidate.

An example notification response value 3416 includes at least one of anotification type value or a notification location value. Example andnon-limiting notification type values include a value such as an e-maildefinition; a message definition; a document edit definition; and/or anapplication message definition. A definition, as utilized herein, shouldbe understood broadly, and can include information such as: contactinformation (e.g., e-mail address, text message number and/or user name;an application message identification value identifying the target ofthe notification 3426); preferences for notification (e.g., follow-upcommunications, formatting for the notification, alternate addresses,etc.); and/or combinations of these including potentially multiplerecipients of the notification 3426.

An example notification location value includes an e-mail address, amessaging address, a document edit location, a document objectidentifier, a document section identifier, an application username, anidentifier associated with the user (e.g., a username for a system 3400,an employee ID number, a name of the user, etc.), and/or an identifierassociated with a predetermined entity (e.g., a company name, a groupname, a user role, a job title, a government agency, etc.). The examplenotification location value allows for notifications 3426 to beselectively positioned anywhere within reach of the system 3400. Anexample includes editing the document 3406 such that the user 814 islikely to notice the notification 3426 upon entering the document 3406(e.g., highlighting changed portion or value of interest, providing apop-up window notifying of the change and/or describing the change,and/or providing the notification 3426 in a defined location of thedocument 3406 where the user 814 can access the notification 3426 at aconvenient time). An example includes accessing a third-party systemsuch as a website, server, or the like to provide the notification3426—for example messaging a Facebook account, a LinkedIn account, orother message enabled service, providing a post on a Facebook timeline,accessing a mobile device application (e.g., an application such asdescribed in the portion referencing FIG. 25, and/or in any applicationaccessible to a messaging function).

An example system 3400 includes the user interaction circuit 3424further providing the notification 3426 as an alert that is sent to amobile device of the user 814. An example system 3400 further includesthe notification response value 3416 including a notification type valueand/or a notification location value. An example notification valueincludes the alert to be sent to the mobile device, and an examplenotification location value includes a communication channel and/ordevice identifier (e.g., a MAC address, registered ID for the device,nickname in the system, etc.) to the mobile device of the user 814.Example and non-limiting communication channels include a user phonenumber, messaging system username or profile name, and/or acommunication application username or profile name. An example alertactivates a graphical user interface of the mobile device to cause thealert to display on the mobile device, and to enable connection with thegraphical user interface in response to the mobile being activated. Incertain embodiments, the alert is capable to wake the device from asleep mode or deactivated mode. Additionally or alternatively, the alertis capable to provide the graphical user interface upon an operation ofthe user 814 or another application waking and/or activating the device.An example graphical user interface provides the user 814 with selectedinformation from all or a portion of the notification 3426, and/orprovides access to open an application to access the document 3406 orportions thereof.

An example notification type value 3416 includes an action linkdefinition. An action link definition includes any description of anaction link as described herein for provision to the user 814 as anotification 3426. An action link includes, without limitation, aconfigurable element selectable by the user 814, wherein an actionwithin the reach of the system 3400 3400 is executable in response tothe selection by the user 814. An action within the reach of the systemincludes, without limitation, an action executable by the system toaccess and/or utilize any resource. Any such resource may be within thesystem and/or external to the system, such as a website, database,application, phone system, a ticketing system, and/or a messagingsystem. In certain embodiments, the action can relate to activity notreachable by the system—for example a link to an action the user canperform that is not in communication with the system. Example andnon-limiting action links include a link to send an e-mail, a link toprovide a notification 3426 according to any description herein to aselected person or entity, an action to send the document 3406, the datavalue 3412, and/or any portions thereof.

An example user interaction circuit 3424, in response to a userselection of the action link, further performs at least one operationsuch as: scheduling a calendar entry for the user; requesting a calendarentry for an entity other than the user; calling an entity determined inresponse to the action link definition; ordering a product and/or aservice in response to the action link definition; and/or assigning atask to an entity in response to the action link definition. Forexample, a design change request and/or problem report entered into thedocument 3406 provides a notification 3426 to the user, and an actionlink with recommended assigned engineers for the design change requestand/or problem report. A selection by the user 814, in the example,assigns the design change request and/or problem report to a selectedengineer, and/or defers the assignment according to the user selection.Another example includes a notification 3426 whereupon the user 814 mayneed to travel in response to the notification 3426 (e.g., a meeting isapproaching, a user 814 flight time is approaching, and/or another userhas requested the user 814 to attend a meeting, function, or the like).The example includes the user interaction circuit 3424 providing anaction link 3428, for example to order a taxi, an Uber, providing anappropriate bus schedule, identifying rental or sharing locations for acar and/or bicycle, and/or to perform any other action responsive to theuser 814 location and projected location.

An example user interaction circuit 3424 further interprets a useraction request value (for example, accessed on the action link 3428 orin a menu provided therewith), and in response to the user actionrequest value, updates the action link definition. For example, the user814 may request additional options for the action link 3428, indicatethat an option has been missed, defer the action link 3428 to beprovided again at another time without an event trigger 3422, and/orrequest a different type of action link 3428 in response to thenotification 3426 and/or action link 3428. An example user interactioncircuit 3424 further interprets a user location value (e.g., accessingthe user 814 mobile device, although any locating mechanism iscontemplated herein), and determining the action link definition inresponse to the user location value. Example and non-limiting operationsof the user interaction circuit 3424 include: selection of storesapplicable to a user requested or indicated purchase based on the eventtrigger 3422 and in view of the user location; selection oftransportation types in response to the user location; and/orconfiguration of an e-mail accessed by the action link 3428 in responseto the user location (e.g. providing an “out of office” option, anestimate response or return time, etc.).

An example procedure 3500 includes an operation 3502 to interpret a usernotification profile value including a notification trigger value and/ora notification response value, an operation 3504 to interpret a datavalue including at least a portion of a document, and an operation 3506to determine whether an event trigger has occurred in response to thenotification trigger value and the data value. In response to theoperation 3506 indicating that an event trigger has occurred, theprocedure 3500 includes an operation 3508 to provide a notification to auser in response to the event trigger and the notification responsevalue.

An example notification trigger value includes a keyword, and where theoperation 3506 includes determining whether another user has performedone of: entering, editing, or deleting the keyword in the document. Anexample notification trigger value includes an update value for at leastone parameter in the data value, and where the operation 3506 includesdetermining whether the update value indicates the at least oneparameter has been updated. An example procedure 3500 includes thenotification trigger value including a status value for at least oneparameter in the data value, where the operation 3506 further includesan operation such as: determining the status value has changed;determining the status value has updated; determining the status valueis equal to a predetermined value; determining the status value hasexceeded a predetermined threshold; and/or determining the status valuehas fallen below a predetermined threshold. An example notificationtrigger value includes at least one value such as: a predetermined timeperiod; a predetermined external event occurrence; a predeterminedspecific user accessing the document; a predetermined user roleaccessing the document; a predetermined document object edit value;and/or a predetermined document section edit value. An examplenotification trigger value includes a process state value. Example andnon-limiting process state values include: a recruiting process statevalue; a project milestone value; a task occurrence value; a taskprogression value; an order occurrence value; an order validity value; adesign change request value; and/or a problem report value. An examplenotification trigger value includes a status value for at least oneparameter in a location such as: the data value, the document, and/or asource data.

Referencing FIG. 36, an example procedure 3506 to determine whether theevent trigger has occurred includes an operation 3602 to determine astatus value for a parameter, and an operation 3604 to determine if thestatus value indicates an event trigger has occurred. Example operation3604 to determine whether the status value indicates an event triggerhas occurred includes one or more operations such as: determining thestatus value has changed; determining the status value has updated;determining the status value is equal to a predetermined value;determining the status value has exceeded a predetermined threshold;and/or determining the status value has fallen below a predeterminedthreshold. The example procedure 3506 includes, where the operation 3604indicates YES, an operation 3606 to return an event trigger YES event(e.g. to procedure 3500), and where the operation 3604 indicates NO, anoperation 3608 to return an event trigger NO event (e.g. to procedure3500).

An example notification response value includes a notification typevalue and/or a notification location value. Example and non-limitingnotification type values include: an e-mail definition; a messagedefinition; a document edit definition; and/or an application messagedefinition. Example and non-limiting notification location valuesinclude: an e-mail address; a messaging address; a document editlocation; a document object identifier; a document section identifier;an application username; an identifier associated with the user; and/oran identifier associated with a predetermined entity.

An example procedure includes an operation to provide the notificationresponse to the user by sending an alert that is sent to a mobile deviceof the user. An example notification response value includes anotification type value and/or a notification location value, where thenotification type value includes the alert, and where the notificationlocation value includes a communication channel to the mobile device ofthe user. An example alert activates a graphical user interface of themobile device to cause the alert to display on the mobile device and toenable connection with the graphical user interface in response to themobile being activated.

An example notification type value includes an action link definition.An example procedure 3500 further includes an operation 3510 to get auser selection of an action link, and an operation 3512 to perform anaction in response to the action link. Example and non-limitingoperations 3512 include performing at least one operation such as:scheduling a calendar entry for the user; requesting a calendar entryfor an entity other than the user; calling an entity determined inresponse to the action link definition; ordering one of a product or aservice in response to the action link definition; and/or assigning atask to an entity in response to the action link definition.

In certain embodiments, a procedure further includes interpreting a useraction request value, and in response to the user action request value,updating the action link definition. An example procedure furtherincludes interpreting a user location value, and determining the actionlink definition in response to the user location value. Exampleoperations 3512 further include, in response to the user selection ofthe action link and/or updated action link, performing an operation suchas: scheduling a calendar entry for the user; requesting a calendarentry for an entity other than the user; calling an entity determined inresponse to the action link definition; ordering one of a product or aservice in response to the action link definition; and/or assigning atask to an entity in response to the action link definition.

Referencing FIG. 37, an example system 3700 includes a first computingdevice 3702 at least intermittently communicatively coupled to a secondcomputing device 3704. The example first computing device 3702 includesa document server, where the document server further includes a clientresource circuit 3708 that determines a client resource value 3710.Example and non-limiting client resource value(s) include a user devicescreen size, a user device input type, a user device resource parameter,and a user device communication value. An example user devicecommunication value includes a qualitative (e.g., communicationprotocols, device connection types such as WiFi, cellular, etc.) and/orquantitative (e.g., communication speed, latency, bandwidth, data usageallowance, etc.) description of the communication capability of thedevice (e.g. the second computing device 3704, and/or a device used bythe user 814 in communication with the second computing device 3704). Incertain embodiments, a user device communication value includes adescriptive value of the communication capability of the device, such as“low battery,” “minimize data usage,” etc. A user device resourceparameter includes, without limitation, a memory associated with thedevice (e.g., RAM, storage space, accessible cloud memory, etc.), and/ora processor capability of the device (e.g. processor speed, cores,and/or power consumption considerations). In certain embodiments, theclient resource value 3710 includes an indication, or a value reflectedin the reported information, of the amount of available resourcesdesired or required to be consumed by an application accessing the datavalue 3712 (e.g. up to 2 GB memory usage, 30% of the processorutilization, etc.). An example client resource value 3710 changes overtime, for example as the connectivity of the device changes, memory isfreed up or consumed, and/or battery power runs low or is recharged. Anexample client resource value 3710 includes categorical information,such as an operating system, device make and model, and/or otherinformation relevant to resources on the device and/or from whichresources of the device are inferred.

The document server further communicates a data value 3712 to the secondcomputing device 3704 in response to the client resource value 3710,where the data value 3712 includes at least a portion of a document3706. The example system 3700 further includes a second computing device3704, such as a client computing device, where the second computingdevice 3704 includes a user display circuit 3714 that determines adocument view 3717 in response to the data value 3712, and provides thedocument view 3717 to a user 814. The example second computing device3704 further includes a unified document surface application circuit3716 that interprets a first user input 3718, for example an edit to thedata value 3712, and a document synchronization circuit 3720 thatcommunicates the first user input 3718 to the first computing device3702.

An example system 3700 includes the client resource circuit 3708 furtherconfiguring document calculation operations 3722 to limit calculationsperformed on the second computing device 3704. In certain embodiments, adocument 3706 and/or data value 3712 includes formulas, calculations,flexible display parameters, and/or other active elements that areselectively, periodically, and/or continuously updated. An examplesystem 3700 is configured to perform certain operations selectively onthe first computing device 3702, the second computing device 3704,and/or another computing device (not shown—e.g., a supporting server incommunication with the document server 3702). The example clientresource circuit 3708 configures the data value 3712 to pass informationrequiring more or fewer calculation operations to the second computingdevice 3704 to increase or decrease the calculation load on the secondcomputing device 3704, for example according to the client resourcevalue 3710. In certain embodiments, the client resource circuit furtherconfigures the document calculation operations 3722 to limitcalculations performed on the second computing device 3704 in responseto a target response time of the second client computing device 3704. Aresponse time includes, without limitation, any determination of theobject response time, such as: a time between a user input and a displayresponse, a ping time to the user device, a processor acknowledgementtime, a return time for a test calculation sent to the processor of theuser device, heuristic determinations of response times (e.g., detectionof repeated user inputs, non-sensical inputs following a screen lagevent, and the like), a reported response time by the user device, auser selection indicating a request for increased response, and/or aresponse time observed for a calculation of the processor that is not atest calculation.

For example, where operations and calculations on the second clientcomputing device 3704 are slowing the second client computing device3704 (e.g., for an application accessing the document 3706 and/or datavalue 3712, and/or for other applications on the device), the clientresource circuit 3708 configures the data value 3712 to reduce thecalculation burden on the second client computing device 3704. Inanother example, where connectivity to the second client computingdevice 3704 is limiting responsiveness (e.g., the user 814 experienceslag in an application on the device), the client resource circuit 3708configures the data value 3712 to move calculations onto the secondclient computing device 3704. In certain embodiments, for example wheremany users are accessing the document server, resource limitations onthe document server (and/or supporting servers) may be accessed by theclient resource circuit 3708 and/or document server to move calculationsincrementally toward or away from one or more client devices.

An example client resource circuit 3708 further adjusts at least onedocument object in response to the user device screen size. For exampleand without limitation, an example client resource circuit 3708 adjustsa table view (e.g., see the portion referencing FIGS. 113 and 114) tochange a dimensionality, width, viewing scheme, or other view of atable. Additionally or alternatively, an example client resource circuit3708 adjusts a graph, chart, image (size and/or resolution), and/oroverall view of the document 3706 (e.g., as expressed through the datavalue 3712) in light of the user device screen size. In certainembodiments, the client resource circuit 3708 provides for a tabbed view(e.g., reference FIG. 113) in response to the user device screen size.

An example user display circuit 3714 further determines the clientresource value 3710, and adjusts the document view 3717 in response tothe client resource value 3710. The client resource value 3710determined by the user display circuit 3714 may be the same or adistinct value from the client resource value 3710 determined by theclient resource circuit 3708. An example user display circuit 3714further adjusts a menu display in response to the client resource value3710. In certain embodiments, the user display circuit 3714 adjusts amenu display by performing an operation such as: moving a default menudisplay location (e.g. from a horizontal to a vertical position, or viceversa), by reducing a number of items depicted or defaulted in thedisplay (e.g., a contextual display based on a user operation having areduced number of suggested matching values), by nesting one or moremenus to provide fewer elements in each display layer, and/or byreconfiguring a menu display or toolbar with reduced features,reorganized features, or the like.

An example second computing device 3704 includes a documentsynchronization circuit 3720 that allows for optimistic updates of thedata value 3712 in response to a slow communication between the documentserver and the second computing device and/or a loss of communicationbetween the document server and the second computing device. Forexample, where the unified document surface application circuit 3716 hasaccessed the document 3706 (e.g., via the data value 3712), an exampledocument synchronization circuit 3720 allows updates to the data value3712 when communications to the document server are slow or lost. Theexample document synchronization circuit 3720 performs a synchronizationwith the document server at a selected time when communications arerestored and/or normalized. See the description referencing FIGS. 1through 7, 37, or 62 for non-limiting examples of synchronizationoperations, for example performed by the document synchronizationcircuit 3720. In certain embodiments, the document synchronizationcircuit 3720 utilizes an operation log to perform operations to storeedits to the data value 3712 and/or synchronize changes to the document3706 with other users.

An example client resource circuit 3708 performs an operation toincrease or decrease an amount of flat data in the data value 3712 inresponse to the client resource value 3710. In certain embodiments, thedocument 3706 includes or accesses referenced or linked data, such assource data 3730. The source data 3730 referenced, linked, and/orincluded in the document 3706 may be selectively, periodically, eventresponsive, and/or continuously updated. In certain embodiments, datamay be incorporated directly into the document 3706 from source data3730, where such data is “flat data” without referential links. Incertain embodiments, such “flat data” may nevertheless be selectively orperiodically updated, and/or updated in an event responsive manner. Incertain embodiments, for example where the client resource value 3710indicates available memory but low bandwidth data capacity or latency,the client resource circuit 3708 provides flat data for one or moreelements of the data value 3712, even where analogous data elements inthe document 3706 are not flat. An example includes the utilization offlat data that conserves high speed bandwidth (e.g., data is imported tothe second computing device 3704 a single time, and/or at a slow updaterate). In certain embodiments, only selected data and/or a percentage ofthe data is included in the data value 3712 as flat data. Additionallyor alternatively, the flat data is updated to the second computingdevice 3704 periodically, selectively, and/or in an event responsivemanner. Additionally or alternatively, flat data in the data value 3712may be tagged, formatted, or otherwise marked such that the user 814 isaware that the depicted data may not be updated. Additionally oralternatively, the user 814 selectively requests updated data, whereinthe client resource circuit 3708 performs one of restoring the linked,referenced, or included nature of the data, and/or the client resourcecircuit 3708 refreshes the flat data, leaving it as flat data.

Referencing FIG. 38, an example procedure 3800 includes an operation3802 to determine a

client resource value, and an operation 3810 to communicate a data valuefrom a document server to a second computing device, where the datavalue includes at least a portion of a document, in response to theclient resource value. The example procedure 3800 includes an operation3812 to determine a document view in response to the data value, and anoperation 3818 to provide the document view to a user. The exampleprocedure 3800 further includes an operation 3820 to interpret a firstuser input including an edit to the data value, and an operation 3822 tocommunicate the first user input to the document server from the secondcomputing device.

An example client resource value includes a value such as: a user devicescreen size, a user device input type, a user device resource parameter,and/or a user device communication value. An example procedure furtherincludes an operation 3804 to determine whether to adjust calculationsor objects of the document and/or data value in response to the clientresource value. Where the operation 3804 indicates YES, the procedure3800 includes an operation 3806 to configure document calculationoperations to limit calculations performed on the second computingdevice. An example operation 3806 to limit calculations performed on thesecond computing device includes limiting calculations in response to atarget response time of the second client computing device.

An example procedure 3800 includes an operation 3814 to determinewhether to adjust a document view in response to the client resourcevalue and/or a user device screen size. Where the operation 3814 returnsa YES result, the procedure 3800 includes an operation 3816 to adjust atleast one document object in response to the user device screen size. Anexample operation 3816 includes adjusting a menu display in response tothe client resource value and/or user device screen size.

An example procedure further includes an operation to allow optimisticupdates of the data value in response to a slow communication betweenthe document server and the second computing device, and/or or a loss ofcommunication between the document server and the second computingdevice. An example procedure further includes performing one ofincreasing or decreasing an amount of flat data in the data value inresponse to the client resource value.

Referencing FIG. 58, a system 5800 includes a document server 5802 thatcommunicates at least a portion of a document 5806 to a client computingdevice 5804. The example client computing device 5804 includes a userinteraction circuit 5808 that interprets a user external data referencevalue 5816 and a display location selection value 5818. Example andnon-limiting user external data reference values 5816 include a uniformresource locator; a website name; a database identifier; a documentidentifier; a data reference value; a data link value; and/or a userreference selection. Without limitation, an example user referenceselection in an example system 5800 includes any user referenceselection 2418 (see FIG. 24, and the portion of the descriptionreferencing FIG. 24). An identifier, such as a database identifier ordocument identifier, includes, without limitation: an object name; anobject referencing identifier; a path name (e.g. a network, diskoperation system, cloud location, and/or website address); and/or anyparseable syntax sufficient to identify a database, document, and/orother object for the user external data reference value 5816.

An example client computing device 5804 further includes an externaldata access circuit 5810 that accesses an external data source 5830 inresponse to the user external data reference value 5816. Example andnon-limiting external data source(s) 5830 include any source data,external source data, and/or external data source(s) describedthroughout the present disclosure. In certain embodiments, the externaldata source 5830 includes a website and/or URL, wherein the userexternal data reference value 5816 includes an in-line charactersequence (e.g., in a text flow, table cell, data on an object, etc.)indicating the website and/or URL. The example client computing device5804 includes a data enrichment circuit 5812 that performs a displayenrichment operation in response to the external data source 5830 andthe display location selection value 5818. Example and non-limitingdisplay location selection value(s) 5818 include a table cell value; atable column value; an object identifier value; and/or a documentlocation value. In certain embodiments, the display location selectionvalue(s) 5818 is inferred—for example the user 814 enters the userexternal data reference value 5816 at a location in the document 5806,and the display location selection value 5818 is inferred to the belocation where the user external data reference value 5816 is entered.For example, the user 814 enters a website address, website name, and/orURL in a cell of a table, and an enriched display value 5820 is insertedinto the cell of the table where the user external data reference value5816 is entered. Additionally or alternatively, the user 814 mayindicate a display location selection value 5818 distinct from thelocation of the user external data reference value 5816, for example byreferencing a location within a formula, in response to prompts from theuser interaction circuit 5808 to indicate a location (e.g., from asuggested list of locations based on contextual information, rules, orthe like).

An example client computing device 5804 includes a user display circuit5814 that provides an enriched display value 5820 in response to thedisplay location selection value 5818 and the display enrichmentoperation. Example and non-limiting enriched display value(s) 5820include a picture, card, aggregated information, a selected set of datafields, and/or a visualization element of any type (e.g., see theportion of the present disclosure referencing FIGS. 11 to 23). Anexample enriched display value 5820 includes a URL to an image, whereinthe image is provided as the enriched display value 5820 in a table cellrather than the URL entered by the user 814 (e.g. as the user externaldata reference value 5816). An example enriched display value 5820includes a card having a specified configuration of financial data for acompany, in response to the user 814 entering a user external datareference value 5816 referencing the company (e.g. a company websiteaddress; a financial data provider website address and/or indication ofthe desired company name; a financial data provider website address in afirst table column, a company name in a second column, where the userexternal data reference value 5816 comprises the website address in thefirst table column and/or a combination of the first and second tablecolumns, and wherein the display location selection value 5818 comprisesa third column providing a card in each data row of the columncorresponding to the company name in the second column). The describedexamples of the user external data reference value 5816, the displaylocation selection value 5818, and the enriched display value 5820 arenon-limiting illustrative examples. It can be seen that the operationsof the system 5800 provide for a user 814 to rapidly access an externaldata source 5830 in a configurable manner, including providing entiretable column operations, and can work with a variety of external datasources 5830 to provide a wide range of available data access and/or tosimultaneously take information from a number of external data sources5830 in a configurable manner.

An example data enrichment circuit 5812 further structured performs thedisplay enrichment operation by performing a data transform operation onat least one data value from the external data source 5830. For example,the data transform operation can include generating a card, table,object of any type, visualization element of any type, and/or operatinga formula on selected data from the external data source 5830. Incertain embodiments, the transformed data is displayed, e.g. as a maskvalue, and the user external data reference value 5816 is stored (e.g.,in an operation log; snapshot; system table; and/or in the same locationas the enriched display value 5820 such as a table cell). In certainembodiments, the user external data reference value 5816 is hidden,selectively visible, and/or visible in certain views (e.g., a view fromthe user 814 displaying metadata for the document 5806).

An example data enrichment circuit 5812 further performs the displayenrichment operation by determining a number of candidate data transformoperations 5832 (e.g., a number of enriched display value 5820 options),providing the number of candidate data transform operations 5832 to theuser 814, interpreting a user selection of the plurality of candidatedata transform operations 5822, and further performing the displayenrichment operation in response to the user selection of the pluralityof candidate data transform operations 5822. For example, the dataenrichment circuit 5812 determines that the user 814 may want to createa card, an embedded table within a row, a chart, and/or display an imagein response to the user external data reference value 5816 and/or thedisplay location selection value 5818, and the data enrichment circuit5812 provides these options as candidate data transform operation 5832to the user 814. The example data enrichment circuit 5812 mayadditionally or alternatively prioritize the candidate transformoperations 5832, provide only a few of the available candidate transformoperations 5832, and/or indicate to the user 814 that additionalcandidate transform operations 5832 are available beyond thosedisplayed.

An example user display circuit 5814 further provides a preview of atleast one of the candidate data transform operations 5832 to the user814. In certain embodiments, the user display circuit 5814 provides apreview for only one or more of the candidate data transform operations5832 (e.g., the highest priority and/or highest estimated relevancecandidate data transform operations 5832), and provides a preview inresponse to a user 814 operation (e.g., as a tooltip dependent upon theuser 814 focus of one or more candidate data transform operation 5832,in response to a user selection from a menu, etc.). Example andnon-limiting previews of the candidate data transform operations 5832include a thumbnail of the resulting enriched display value 5820, and/ora pop-up (e.g., in a new window and/or within the presently selectedwindow) of the resulting enriched display value 5820. In certainembodiments, the provision of one or more previews is determined inresponse to a resource value of the client computing device 5804, aproperty of the client computing device 5804 (e.g., a screen size,device type, etc.), and/or a communication property to the external datasource 5830 (e.g., communication bandwidth between the document server5802 and the client computing device 5804; and/or a latency and/oravailability of retrieving data from the external data source 5830);and/or computing resources available within the system 5800 and/or fromcomputing resources available to the system (e.g. additional servers—notshown) to process the preview information.

An example data enrichment circuit 5812 further determines the number ofcandidate data transform operations 5832 in response to at least one of:the user external data reference value 5816; the display locationselection value 5818; a previous user selection of the number ofcandidate data transform operations 5822 (e.g., from the specific user814 and/or a previous user accessing the document 5806 and/or accessingthe external data source 5830 in another document visible to thedocument server 5802); a predetermined list of candidate data transformoperations (e.g., defined by rules from the user, an administrator,within a document template, and/or from the external data source 5830);a data type of accessed data from the external data source 5830; anexternal data transform operation provided by the external data source5830 (e.g., where a developer or administrator related to the externaldata source 5830 has provided one or more candidate data transformoperations 5832); and/or a context value (e.g., according to anycontextual determinations described throughout the present disclosure).

An example external data access circuit 5810 further accesses theexternal data source 5830, stores data from the external data source5830 in a datastore 5826 (in the example, on the client computing device5804, but the datastore 5826 may be anywhere within the system 5800including at least on the document server 5802 and/or within thedocument 5806), and where the data enrichment circuit 5812 furtherperforms the display enrichment operation in response to the externaldata source 5830 by accessing the datastore 5826. It can be seen thatthe utilization of a datastore 5826 can improve operations of thedocument server 5802 and/or client computing device 5804, by reducinglatency in retrieving data, reducing the number of data access eventsfrom the external data source 5830, and/or by making data from theexternal data source 5830 available to other users and/or other clientcomputing devices (not shown), and/or making the external data source5830 available to other documents (not shown) in the system 5800. Incertain embodiments, certain operations such as providing a preview ofcandidate data transform operations 5832, and/or providing a moreresponsive interface to the user 814, are improved by the user of thedatastore 5826. An example external data access circuit 5810 updates thedatastore 5826 periodically (e.g. hourly, daily, and/or weekly),according to a notification from the external data source 5830 thatupdated information is available (including, in certain embodiments,determining whether data utilized in the system 5800, such as within thedocument 5806, a user external data reference value 5816, and/or withinanother document in the system 5800, is implicated by any change),according to a user 814 selection of data synchronization rate, and/oraccording to a rules-based data synchronization rate (e.g., user definedrules, administrator defined rules, document template rules, and/orrules from the external data source 5830).

Example and non-limiting operations of the external data access circuit5810 to update the datastore 5826 include: an update time expiration(e.g., update from the external data source 5830 daily, hourly, weekly,and/or at any other selected interval); a notification from the externaldata source 5830; a change in a second data value (not shown) having adependency on the external data source 5830 (e.g., the user 814 changesa formula, table, and/or object having a calculation utilizing theexternal data source 5830, and the external data access circuit 5810queries the external data source 5830 to ensure the results of theformula, table, and/or object are displaying current information); achange in an object having a dependency on the external source data; acreation of a second data value having a dependency on the externalsource data (e.g., the user 814 creates a formula, table, and/or objecthaving a calculation utilizing the external data source 5830, and theexternal data access circuit 5810 queries the external data source 5830to ensure the results of the formula, table, and/or object aredisplaying current information); a creation of an object having adependency on the external data source 5830; and/or a request to providea continuous update of the at least one data value. In certainembodiments, the external data access circuit 5810 predicts that theuser 814 will perform an operation dependent upon the external datasource 5830, and queries the external data source 5830 to update thedatastore 5826. Example operations to predict the user 814 will performan operation dependent upon the external data source 5830 include:predicting based on a document section currently focused by the user814; predicting based on a document object currently focused by the user814; predicting based on a document canvas currently focused by theuser; predicting based on a portion of the document currently visible tothe user 814; predicting based on prior user 814 operations (e.g., theuser 814 has accessed dependent data previously after accessing aparticular document portion and/or performing certain operations);and/or predicting based on prior operations from one or more otherusers.

An example user display circuit 5814 further updates the enricheddisplay value 5820 in response to a change in the external data source5830 and/or changes in the datastore 5826. Accordingly, an example userdisplay circuit 5814 provides a live or selectively updated view of theenriched display value 5820 to the user 814. In certain embodiments, anage of the datastore 5826 and/or an indication that updated data isavailable from the external data source 5830 is available to and/oraccessible by the user 814.

An example external data access circuit 5820 further determine that anexternal data source 5830 is not presently available (e.g., the externaldata source 5830 and/or client computing device 5804 is “offline,”and/or a communication interruption is present in the system 5800), andthe data enrichment circuit 5812 further delays the performing thedisplay enrichment operation until the external data source 5830 isavailable. In certain embodiments, the data enrichment circuit 5812performs the display enrichment operation when the external data source5830 is not presently available, and the user display circuit 5814delays providing the enriched display value 5820 until the external datasource 5830 is available and/or provides a placeholder external datasource 5830 (e.g., using example data, a notification image or textvalue indicating the enriched display value 5820 is not depictingupdated data, and/or utilizing a default depiction of the enricheddisplay value 5820) until the external data source 5830 is available.

An example user interaction circuit 5808 further interprets a user dataedit operation 5824 including an edit to the enriched display value5820, and the external data access circuit 5810 updates the externaldata source 5830 in response to the user data edit operation 5824. Forexample, operations of the user interaction circuit 5808 and externaldata access circuit 5810 allow the user 814 to review and displayexternal data in a convenient format (e.g., as selected by the enricheddisplay value 5820) and to write changes back to the external sourcedata 5830. In certain embodiments, access to the external source data5830 is scheduled according to permissions, for example a first user mayhave permissions to edit the external data source 5830 and a second usermay have only permissions for read access to the external data source5830. In certain embodiments, a user 814 may have edit access to certainaspects of the external source data 5830 (e.g., the user's own profileon a LinkedIn source), read access only to certain aspects of theexternal data source 5830, and no access to other certain aspects of theexternal data source 5830. In certain embodiments, the external dataaccess circuit 5810 stores access permissions (e.g., read and/or editaccess) and/or selections to one or more external data sources 5830.

An example external data access circuit 5810 further stores an externaldata source configuration value 5828, where the external data sourceconfiguration value 5828 includes access information corresponding tothe external data source 5830. For example, an external data sourceconfiguration value 5828 includes login information, defined accesspermissions, and/or referencing aliases for one or more external datasources 5830. In certain embodiments, aspects of the external datasource configuration value 5828 may be automatically generated (e.g.from a user profile or other information accessible to the system 5800),and/or may be accessible to and/or selectable by the user 814. Anexample external data source configuration value 5828 includes the user814 adjusting permissions—for example to reduce an edit accesspermission to a read-only access permission for one or more aspects ofthe external data source 5830, such as to prevent inadvertent edits ofthe external data source 5830. The example external data access circuit5810 further accesses the external data source 5830 in an operationincluding accessing the external data source configuration value 5828.An example external data source configuration value 5828 includes asystem table (e.g., the external data source configuration value 5828depicted on the document 5806). In certain embodiments, the externaldata source configuration value 5828 is not provided on an operation logand/or snapshot (e.g., to prevent login information from beingaccessible in the operation log). In certain embodiments, an externaldata source configuration value 5828 includes one or more elements thatare encrypted and/or hashed (e.g., allowing for confirmation of a userpassword or the like), and included in a system table and/or anoperation log or snapshot. In certain embodiments, a system table is notvisible to the user 814, is selectively visible to the user, and/or isvisible to the user 814 when accessing specified views (e.g., a systemview and/or metadata view).

In certain embodiments, operations to provide an enriched display valueare described as “inflate” operations—wherein a user external datareference value 5816 is “inflated” to an enriched display value 5820.Example and non-limiting external data sources 5830 include, withoutlimitation, GitHub, LinkedIn, Facebook, a URL, and/or an e-mail datasource (e.g., for a user, group of users, system, etc.).

Example operations include transforming a cell of a table that has theuser external data reference value 5816 positioned (e.g., pasted)therein, and transforming the cell and/or a masked appearance of thecell, into an enriched display value 5820. For example, an image URLpositioned into a cell is transformed into an image. Another exampleincludes a personnel based URL (e.g., a LinkedIn URL) transformed intodata for a person and/or entity.

Accordingly, functions related to an external data source 5830, whichmay be configured for the specific external data source 5830, user 814,and/or any contextual information, can be suggested and/or implemented.An example includes suggesting functions that were last used for aparticular URL, functions based on specific content and/or a data type,and/or functions recently used by a specific user or other usersaccessing the document, document section, external data source 5830,and/or object. In certain embodiments, external developers for anexternal data source 5830 provide suggested functions for their externaldata source 5830.

In certain embodiments, access to an external data source 5830 can beconfigured—for example in an external data source configuration value5828, to provide for authorization checking and handling, definitionsand/or suggestions of data fields to be utilized, synchronizationfrequency, time definitions for data (e.g., time frame of data to bepulled, future times of interest where data can be synchronized more orless frequently, or will no longer be utilized, etc.), whether externaldata sources 5830 should be registered, and/or which projects, fields,or other information from the external data source 5830 are of interest.Where the external data source 5830 is web-based and/or referenced by aURL, in certain embodiments operations of systems and procedures hereinmay be referenced as “webhooks.” In certain embodiments, within systemsdisclosed herein, access to external data source(s) 5830 may beprioritized over access to other external data source(s) 5830, whichprioritization may be based on the external data source 5830, the user814, currently available system resources, and/or current availabilityand/or known or estimated future availability of external data source(s)5830.

Referencing FIG. 59, an example procedure 5900 includes an operation5902 to interpret a user external data reference value and/or a displaylocation selection value, an operation 5904 to access an external datasource in response to the user external data reference value, and anoperation 5910 to perform a display enrichment operation in response tothe external data source and the display location selection value. Theexample procedure 5900 further includes an operation 5912 to provide anenriched display value in response to the display location selectionvalue and the display enrichment operation 5910. An example procedure5900 includes the user external data reference value being a value suchas: a uniform resource locator; a website name; a database identifier; adocument identifier; a data reference value; a data link value; and/or auser reference selection. An example procedure 5900 includes the displaylocation selection value being at least one location value such as: atable cell value; a table column value; an object identifier value;and/or a document location value.

Referencing FIG. 60, an example operation 5910 to perform a displayenrichment operation includes an operation 6010 to perform a datatransform operation on at least one data value from the external datasource. In certain embodiments, the operation 5910 further includes anoperation 6002 to determine a number of candidate data transformoperations, an operation 6004 to provide the number of candidate datatransform operations to a user, and an operation 6008 to interpret auser selection of the number of candidate data transform operations. Inthe example operation 5910, the operation to perform the displayenrichment operation is in response to the user selection of the numberof candidate data transform operations. An example operation 5910further includes an operation 6006 to provide a preview of one or moreof the number of candidate data transform operations to the user.Example operations 6002 to determine a number of candidate datatransform include determining the number of candidate data transformoperations in response to: the user external data reference value; thedisplay location selection value; a previous user selection of theplurality of candidate data transform operations; a predetermined listof candidate data transform operations; a data type of accessed datafrom the external data source; an external data transform operationprovided by the external data source; and/or a context value.

Referencing FIG. 61, an example procedure 6100 includes an operation6102 to access the external data source, and an operation 6104 to storedata from the external data source in a datastore. The example procedure6100 further includes the operation 5910 to perform the displayenrichment operation in response to the external data source byaccessing the datastore.

Again referencing FIG. 59, an example procedure 5900 further includesthe operation 5912 including updating the enriched display value inresponse to a change in the external data source. An example procedure5900 includes an operation (not shown) to determine that an externaldata source is not presently available, and to delay the operation 5910to perform the display enrichment operation until the external datasource is available. An example procedure 5900 further includes anoperation 5914 to interpret a user data edit operation including an editto the enriched display value, and an operation 5916 to update theexternal data source in response to the user data edit operation. Anexample procedure 5900 further includes an operation (not shown) tostore an external data source configuration value, where the externaldata source configuration value includes access informationcorresponding to the external data source, and where the operation 5904to access the external data source further includes an operation 5906 toaccess the external data source configuration value. An example externaldata source configuration value includes a system table.

Referencing FIG. 31, a system 3100 includes a client computing device3104 in communication with a document server 3102. The document server3102 communicates a data element 3112 (e.g., a table), including atleast a portion of a document 3106, to the client communication device3104. In certain embodiments, the document 3106 includes, links, and/orreferences source data 3130. Example source data 3130 is included withinthe document 3106, within the document server 3102, and/or accessedexternally from the document 3106 or document server 3102—for exampledata on a website, third-party database, and/or cloud location.

The example system 3100 includes a user interaction circuit 3108 thatinterprets a table grouping input value 3110. An example table groupinginput value 3110 includes a number of categories and a number ofassociated data sets corresponding to the categories. Example categoriesinclude, without limitation, a table column heading, a table name, aform name, a data sheet name, and/or any categorization of data valuesand/or data value groups. Example associated data sets include, withoutlimitation, table rows, one or more data values present on a form, oneor more data values present on a data sheet, and/or any other data valueset associated with a category. An associated data set includes a numberof data values, which may be related to each other, and/or a single datavalue associated with the category. For example, a category includes atable column heading, and associated data values include row informationfrom an associated table, for example one or more data values from eachrow makes up an associated data set. In certain embodiments, anassociated data set is pulled from multiple locations, for example frommore than one table, chart, graph, data sheet, and/or form (for exampleutilized to enter and/or read data or information). The descriptionherein using columns or rows is interchangeable pending upon the dataorganization and conventions used in an example system 3100.

The example system 3100 includes a table aggregation circuit 3114 thatdetermines an aggregation value 3116 in response to the table groupinginput value 3110. An example aggregation value 3116 corresponds to atleast one of the categories, for example an aggregation value 3116includes a grouping of a number of data rows, where each row shares anassociated data value in a column corresponding to the category selectedfor aggregation. An associated data value, for the purposes of thepresent disclosure, includes data values having a characteristicselected for aggregation, for example data values having a same valuefor the selected category, data values grouped according to a data binand/or bucketing operation, data values sharing a qualitativecharacteristic (for example, fruit, cars, and/or a data type), and/ordata values sharing a quantitative characteristic (for example, apositive or negative magnitude, less than or greater than a selectedvalue, and/or having any other quantitative relationship).

Example system 3100 includes the user interaction circuit 3108 thatprovides an aggregated table view 3118 in response to the aggregationvalue 3116. In certain embodiments, the aggregated table view 3118includes aggregated data in accordance with the aggregation value 3116,including selected aspects of associated datasets, a table depicting theaggregated data (for example, a pivot table), and/or portions of theaggregated data currently visible to the user 814 based on the portionof the document 3106 being accessed by the user 814. While the examplesystem 3100 is described in the context of a table and an aggregatedtable view 3118, aggregations of any type of object having or associatedwith a number of data sets are contemplated herein, including at leastgraphs, charts, and or other objects having or displaying a number ofdata sets or data series. Additionally or alternatively, aggregatedvalues may be provided at the right or left side of a table or object,at a top or bottom of an object, and/or at other locations (e.g., withina document), such as for convenient reference to the user without regardto the positioning of the aggregated value relative to the table oraggregated data.

An example user interaction circuit 3108 interprets the table groupinginput value 3110 by performing at least one operation such as: providingan aggregation user interface element to user, interpreting a userselection value in response to the aggregation user interface element,and determining an aggregation profile in response to the user selectionvalue. An example aggregation profile includes at least one of thecategories for aggregation, and in certain embodiments further includesan aggregation scheme for the associated data sets. The use of anaggregation profile and/or aggregation scheme allows for a wide range ofcapability in aggregation, were aggregation is not limited to a singlecategory, and or line by line associated data sets to the singlecategory. For example, the aggregation profile allows for aggregation ofseveral categories, for example prioritized in a selected order,aggregation of a single category and or related categories from multipledata sources (for example, from multiple tables, multiple objects,and/or across a table and another object), and allows for differentialaggregation logic for each aggregated category, and/or within anaggregated category. For example, in aggregation profile may include adata count of associated data sets where a value within each associateddata set corresponding to the aggregated category is below a thresholdvalue, in a sum of associated datasets where a value within eachassociated data set corresponding to the aggregated category is abovethe threshold value. Additionally or alternatively, where two categoriesare aggregated, an aggregation profile can provide for aggregating thefirst one of the two categories according to first aggregation scheme,and aggregating the second one of the two categories according to asecond aggregation scheme. Example and non-limiting aggregation schemesinclude qualitative aggregation of associated data sets according to atleast one of the categories, quantitative aggregation of associated datasets according to at least one of the categories, and/or binnedaggregation of associated data sets according to at least one of thecategories.

An example aggregation scheme includes a nested aggregation ofassociated data sets according to at least two of the categories. Anested aggregation includes aggregations against more than one category,such as aggregating data sets against a first category, and thenaggregating against a second category. In certain embodiments, thepriority of a first category, and/or a second category for nestedaggregation is the same for all data sets within the aggregated dataset. Additionally or alternatively, prioritization between categoriescan vary within the aggregated data set, for example a value of the datasets in a third category can be utilized to determine prioritizationorder for a data set between the first category and the second category.In a further example, a first category includes weekly net sales data, asecond category includes weekly gross sales data, and a third categoryincludes a business unit reporting the sales data. In the continuingexample, for example where certain business units report gross salesdata in other business units report net sales data, the third categorymay be utilized in an aggregation profile to group sales reportingeither with the first category having priority or the second categoryhaving priority based upon which business unit reported the salesinformation. The provided nonlimiting example is for purposes ofillustration, in any aggregation profile, and/or aggregation scheme iscontemplated herein.

In certain embodiments, the aggregation scheme and/or aggregationprofile, including in some instances a nested aggregation scheme, isstored in the operation log (for example as the local operation log116). Additionally or alternatively, precursor operations to implementthe aggregation scheme and/or aggregation profile are stored in theoperation log. For example, new data reflecting the aggregationinformation (e.g., a sum of certain values) can be calculated, anaggregation display cell, row, column, or other display feature, addedto the column, and the resulting aggregation data (e.g., the aggregationresult) and/or the aggregation formula (e.g., the aggregatingcalculations) may be explicitly created and stored in the operation log.Additionally or alternatively, precursor information for theaggregation, such as the aggregation profile, aggregation scheme, and/orformulas for aggregation, may be stored in the operation log, whereinupon opening a document again, or the user focus returning to thelocation of the document where aggregated information is displayed, theaggregation information and/or aggregation display can be populated fromthe precursor. Any information stored which can preserve the aggregationinformation, and/or from which the aggregation information can bere-created at selected times, is contemplated herein. Any storagelocation for the information to preserve and/or re-create theaggregation information, such as: an operation log, run-time data,and/or a user-related file that is associated with the document andaccessible when the user accesses the document, is contemplated herein.The selection of storing pre-cursor information, aggregation results,and/or aggregation display, and further the selection of calculatingaggregation results as needed or saving aggregation results for re-use(e.g., where it is determined that a prior calculation remains valid),can be configured for the particular system and any priorities of theuser and/or an administrator. For example, selections of storage andcalculations can be modulated to reduce processing utilization of aclient computing device and/or document server, to reduce memoryutilization of a client computing device and/or document server, toimprove response time of an application accessing the document from theperspective of the user, to reduce the size and/or number of operationsin the operation log, and/or to reduce communication bandwidthutilization between the client computing device and the document server.

Example and nonlimiting aggregation schemes include at least: anassociated dataset count; a sum of associated datasets; an average ofassociated datasets; an applied function of associated datasets (such asa highest value within the data sets, a lowest value within the datasets, a sum of the squares of the values within the datasets, acorrelation coefficient of the values, a mathematical description of thevalues, such as a frequency component, variability, and the like), anapplied formatting of associated data sets (for example, font size, fontcolor, line color, highlighting information, bold, and/or italics); andcombinations of these. The described examples are nonlimitingillustrations of aggregation schemes.

An example aggregation user interface element includes any userinterface component provided to allow the user 814 to invoke anaggregation operation. Example and nonlimiting aggregation userinterface elements include: a dedicated aggregation input element; atable super cell; a table category heading; a toolbar interface element;a menu interface element; and/or a context triggered element. Exampleand non-limiting dedicated aggregation input elements include a specificicon and/or graphical element visible to the user 814. An example systemincludes the user 814 entering the table grouping input value 3110according to prompts, as a part of initial selection of the dedicatedaggregation input element, and/or in a drop-down menu. Exampledeterminations of the aggregation value 3116, and/or population ofdrop-down menus, prompts, or the like, are performed according to acontext of user operations, such as a type of object the user 814 isworking with, available resources on a client computing device 3104, adocument section or type, previous operations of the user 814 or aprevious user working with the type of object or specific object theuser 814 is working with, and/or rules-based operations such as templatedefined rules, user defined rules, and/or administrator defined rules. Atable super cell may be a column heading, a row name, and/or a selectedcell protected from editing and/or tagged to organize information in atable. Non-limiting examples of a “super cell” include a grouping value,for example a single cell that include multiple cells arranged therein.Additionally or alternatively, “ranges” (which may be visible or inmetadata that is invisible or selectively visible) may be utilized todescribed grouped values and/or aggregated values. The terminology ofdescribing aggregation elements and/or grouping elements is not limitingto the present disclosure.

Certain examples of a dedicated aggregation input element are describedherein. Referencing FIGS. 117 and 126, a dedicated aggregation inputelement 8202 includes an aggregation drop down menu depicted above atable, whereupon the user 814 selects the drop-down menu and makes anaggregation selection for the table (“My Table” in the example of FIG.116). In the example of FIG. 117, an aggregated table view 3118 includestwo-dimensional table, grouped according to a first group of categories8502 (e.g. column headings “Group 1,” “Group 2,” etc.) and a secondgroup of categories 8504 (e.g. column headings “Group A,” “Group B”,etc.), which may be column headings from a source table, data values ofinterest from the associated data values, or the like. The example ofFIG. 117 includes a number of associated data values of interest (e.g.data row 8506) positioned in each grouping. In addition to, or as analternative to, grouping associated data values of interest, summary orother aggregation information for associated data values positioned ineach grouping can be displayed. The example of FIG. 117 is atwo-dimensional grouping, although any grouping dimensionality anddisplay method for grouped data is contemplated herein. In certainembodiments, the user 814 can aggregate the data with a singleoperation, such as selecting an aggregation value from the dedicatedaggregation input element 8202, dragging a row representing anassociated data set onto a column representing a category, dragging acolumn header representing a category onto a row representing anassociated data set, etc. In certain embodiments, where the aggregationscheme requested by the user 814 is not immediately clear, the tableaggregation circuit 3114 infers an aggregation scheme from the availablecontext. For example, an aggregation circuit 3114 aggregates accordingto a first element of the associated data sets, according to a highestimportance element of the associated data sets, according to a mostinteresting element of the associated data sets, such as one previouslyaggregated for the object or a related object, one associated with ahighest variability within the associated data sets, one relating to aheader within a document section of the related object. Additionally oralternatively, an aggregation circuit 3114 aggregates with a sum,associated row count, and/or an aggregation function, according to adefault rule, specified rules such as from a template defined rule, userdefined rule, and/or administrator defined rule, according to previoususer operations and/or previous operations of another user. In certainembodiments, the aggregation circuit 3114 prompts a user 814 for aselected aggregation scheme, and/or provides the user 814 with a previewof one or more aggregation results according to one or more aggregationschemes.

Example and non-limiting operations for the user 814 to provide a tableinput grouping value include: a user selection of a dedicatedaggregation input element; a user drag operation of one or moreassociated data sets to a table supercell; a user drag operation of atable supercell to associated data sets; a user drag operation includingan element of a first table and an element of a second table (e.g. wherethe inferred aggregation scheme includes a primary table and a secondarytable, where the secondary table is aggregated according to one or morecolumns of the primary table; the first table or the second table may bethe primary table, and the example aggregation circuit 3114 may promptthe user 814 and/or provide a preview to ensure the desired aggregationscheme is applied); a user menu interface element selection; and/or auser selection of a context triggered element (e.g. a user operation isinferred to suggest an aggregation operation, and the exampleaggregation circuit 3114 prompts the user with one or more aggregationschemes and/or provides a preview to ensure the desired aggregationscheme is applied). In certain embodiments, the user interaction circuit3108 is further structured to interpret a table grouping input value byinterpreting a user drag operation including at least two data values,and wherein the table aggregation circuit 3114 further structureddetermines the aggregation value 3116 by preserving original values forthe at least two data values.

An example system 3100 includes the user interaction circuit 3108further interprets a user data edit value corresponding to one of theplurality of associated data sets viewable in the aggregated table view3118, and updates at least one data value on the table 3112 in responseto the user data edit value. For example, an aggregated table view 3118displays one or more values of the associated data sets on theaggregated table. Previously known aggregation displays, such as pivottables, charts, etc., are one-way data views, where the data is linkedfrom the source data but not editable within the aggregation display. Incertain embodiments, one or more data values from the aggregated tableview 3118 may be write-through values, allowing the user 814 to edit thevalues right on the aggregated table view 3118, without breaking thelinked nature of the aggregated table view 3118—for example, the sourcedata for edited values remains in the table 3112, and an edit on theaggregated table view 3118 passes the edit back to the table 3112, butdoes not break the link.

Example operations to create the aggregated table view 3118 includecalculating and storing the aggregated table view 3118 as operations inan operation log. It is understood that operations described throughoutthe present disclosure may occur in several steps, which combine toprovide the functionality of the disclosed operations. For example, andaggregating operation may include several different and/or independentoperations to support providing the information for a particular view.Example operations include inserting a table object representing theaggregated table view 3118, and storing aggregated values for displayand/or calculations from which aggregated values can be determined anddisplayed as requested (e.g., by the user navigating to a portion of thedocument making the aggregated table view 3118 visible). Exampleoperations to edit source data from the links without breaking thelinked nature of the aggregated table view 3118 include accepting useroperations in a linked cell to edit the value therein, where the truedata value is a linked or referenced value, and upon the user completionof the editing information (e.g., the user changes focus from the cell,hits “ENTER”, and/or hits “TAB”), storing the operation (e.g. in theoperation log) as an edit to the source table rather than the linkedlocation where the user edited the data. In certain embodiments, thedata value in the linked location where the user edited the data isunchanged (e.g., a formula referencing the source table), and/or thedata value in the linked location is a display value only (e.g. wherethe linked location is created by a column-wise calculation, whereindividual formulas are not present in individual cells). In certainembodiments, the user interaction circuit 3108 updates the source datavalue, and performs a refresh or recalculation operation such that theedited data value from the user 814 in the linked data location isvisible to the user 814 (e.g., to provide the feel to the user that theedit in the linked data location was effective and/or seamlesslyoperates from the user perspective as if the user is directly editingthe data).

Referencing FIG. 128, an aggregated table view 3118 is depicted on a tabof a document for ease of selection, publication, or other manipulationby a user 814. Referencing FIG. 127, an example aggregation inputelement 8202 is depicted. In certain embodiments, a graphical elementpositioned near the associated data values (e.g. rows of data) providesfor a context menu location selectable by the user 814. In certainembodiments, the context menu location highlights upon selection and/orfocus by the user 814, and includes row operations such as insertion ordeletion of a row (e.g. as depicted in the example of FIG. 126).Additionally or alternatively the aggregation input element 8202includes selectable and/or suggested aggregation schemes, which may beresponsive to the manner in which the user 814 selects or focuses theaggregation input element 8202 and/or a context of the user 814interaction with the table or object. In the example of FIG. 126, theuser 814 has selected the aggregation input element 8202 in a mannersuch that aggregation schemes are not depicted thereon.

Referencing FIG. 129, example, non-limiting, aggregated table views 3118are depicted thereon. Where an aggregated data result is a single value(e.g. a sum of a data set), the aggregated table view 3118 can bedepicted as a single value (e.g., “Values”). Where the aggregated dataresult is a single list of values, the aggregated table view can bedepicted as a list (or array) of values (e.g., “Values and aggregates”).Where the aggregated data result is a number of lists of values, theaggregated table view can be depicted as a table of N lists (e.g. “Nlists” depicting columns A, B, C, etc.). Additionally or alternatively,where the aggregated data result is a number of lists, or othertwo-dimensional information, the aggregated data view can be depicted asa two-dimensional table of associated data sets grouped according to theat least two grouping criteria (e.g. depiction of aggregated data view3118). Where two or more dimensions result from the aggregation,grouping can additionally or alternatively include additional datagrouping depictions, such as nested lists, shapes, colors, oralternative formatting to depict additional grouping dimensions, and/ordensity or transparency adjustments to depict additional groupingdimensions. Additionally or alternatively, grouping order (e.g. priorityof two separate grouping dimensions) can be readily adjusted by theuser—for example dragging a horizontal grouping category to a member ofthe vertical grouping category, which in certain embodiments the tableaggregation circuit 3114 interprets as an operation to switch thegrouping priority of the horizontal and vertical grouping categories. Incertain embodiments, operations to change grouping priorities and/ordimensions are stored in the operation log as operations to implementthe grouping priorities and/or dimensions reflected in the document andthe respective objects affected. For example, the referenced objects,relationships, and associations are stored as entries editing theaggregated table view 3118 to implement the grouping priorities and/ordimensions. Additionally or alternatively, change operations executed bythe user are stored in the operation log (e.g., an original state of theoperation log includes operations to implement the pre-change groupingpriorities and/or dimensions, and an updated state of the operation logincludes operations to change the grouping priorities and/ordimensions). In certain embodiments, change operations are stored at afirst time (e.g., after initial edits to preserve undo functionality),and reduced to operations to implement the final state at a second time(e.g., upon generating a snapshot, saving the document, etc., to reducememory utilization and/or document calculation time).

It can be seen that grouping results may be depicted as single datavalues, lists of data values, and/or associated rows of data within eachgrouping (e.g. a “table in a table” depiction, such as with regard toFIG. 129 and/or FIG. 126). Referencing FIG. 129, a nested view isdepicted for grouping on a single dimension, for example depicting bugfix priorities for a number of software engineers. Category headings(e.g., “Amisha,” “Carol,” etc.) are depicted in-line before eachrelevant group of associated data sets. Additionally or alternatively,the category headings may be depicted on the side, spanning associateddata sets, and/or having a graphical depiction that makes clear whichassociated data sets belong in each category (e.g., reference thedepiction in FIG. 130). FIG. 130 provides a two-dimensional aggregatedtable view 3118 of the data depicted in FIG. 129, with the projectmilestone as an additional grouping category. In the example of FIG.130, category headings (e.g., “M1,” “Amisha,” etc.) are depicted ingraphical elements, such as supercells. In certain embodiments, a tablecell includes data values (e.g. a number, text value, and/or stringvalue). In certain embodiments, a table cell includes an image, a graph,a chart, and/or a rich content data feature (e.g. a map having locationsmarked, and/or selectable).

When multi-dimensional data groupings are depicted in a given data set,depending upon the variability in the underlying data and/or thegrouping selections made, an aggregated data set can be sparse (e.g.reference FIG. 130 where “Carol” has no M1 deliverables, and “John” hasno M2 or M3 deliverables). Accordingly, referencing FIG. 131, theaggregated data view 3118 can depict all aggregated data (e.g. a “grid”view 9602) including null return values, and/or an aggregated data view3118 can depict only aggregated data having a value (e.g. a “wrap” view9604). Additionally or alternatively, aggregated data views 3118 can bedepicted separately (e.g. a separate tab of a document) for selectionand review by the user 814, and/or previewed for the user 814 forselection of one or more aggregated view options.

Referencing FIGS. 132 and 133, a graphical user interface 9700 isdepicted, provided to allow a user 814 to edit options for a tableand/or for aggregated table views 3118 made utilizing a table. Theexample of FIG. 132 allows for convenient entry of the table name,column headings, formulas into the table and/or in metadata related tothe table (e.g. to conditionally format the table). Additionally oralternatively, controls (e.g., see the portion of the descriptionreferencing FIGS. 14 and 21-23) may be added through a graphical userinterface 9700, and/or manually on a document surface. Referencing FIG.133, a partially completed graphical user interface 9700 is depicted. Aselements are added to the table in the graphical user interface 9700,additional features for those elements are populated for reference andmanipulation by the user 814. Additionally or alternatively, multipleviews are selectable, with each having a configurable view of thetable—for example differential sorting, filtering, formatting, and/orother features make up a view in certain embodiments. Accordingly, auser 814 can have multiple views of a table available, and/or a numberof users can save distinct views.

Referencing FIG. 134, an example aggregated data view 3118 is depicted,having a number of associated data vales, with an average aggregationfor the “Priority” column, and a sum aggregation for the “effort”column. Referencing FIG. 135, an example aggregated data view 3118 isdepicted, having a grouping by the programmer name, sub-totals for eachprogrammer's effort, a total for all programmer's efforts, sub-averagesfor each individual programmer's priority of tasks, and an average forall of the programmers' priority of tasks. Referencing FIG. 135, analternate example aggregated data view 3118 is depicted, havingsub-totals and sub-averages to the right side of the table, and totalsand averages depicted in the right-side column at the bottom.Referencing FIG. 136, an aggregated data view 3118 includes aggregatingby programmer and priority in a two-dimensional aggregation, andincluding the sub-totals and sub-averages to the right side of thetable, and the totals and averages depicted in the right-side column atthe bottom. Referencing FIG. 137, an aggregated data view 3118 includesaggregating by priority only, with programmers sorted within eachpriority grouping. Aggregations are depicted by total effort in eachpriority split, and totals and averages for all tasks at the right sideof the final row.

Referencing FIG. 138, a three-dimensional grouping is depicted, having ahorizontal grouping, a vertical grouping, and a shaded grouping depicted(e.g. where shaded members of a given color, shading type, or the likeare related in a group). Accordingly, the user 814 can readily identifyrelated members in a group by shading, and shaded aggregate values canbe depicted that are relatable to the shaded members of the group.Referencing FIG. 139, an alternate view of a three-dimensional groupingis depicted, with shading marking the third grouping dimension,sub-totals for the third grouping dimension, and totals for the thirdgrouping dimension.

Referencing FIG. 32, an example procedure 3200 for providing anaggregated table view is schematically depicted. The example procedure3200 includes an operation 1002 to interpret a table grouping inputvalue, where the table includes a number of categories and a number ofassociated data sets corresponding to the number of categories. Theexample procedure 3200 further includes an operation 3204 to determinean aggregation value in response to the table grouping input value,where the aggregation value corresponds to at least one of the number ofcategories, and an operation 3206 to provide an aggregated table view inresponse to the aggregation value.

Referencing FIG. 33, an example procedure 3202 for determining anaggregation profile in response to the table grouping input valueincludes an operation 3302 to provide an aggregation user interfaceelement to a user, an operation 3304 to interpret a user selection valuein response to the aggregation user interface element, and an operation3306 to determine the aggregation profile in response to the userselection value. An example procedure 3200 further includes theoperation 3204 determining the aggregation value further in response tothe aggregation profile.

An example aggregation profile includes at least one of the categoriesfor aggregation, and/or an aggregation scheme for the number ofassociated data sets. Example and non-limiting aggregation schemesinclude: a qualitative aggregation of associated data sets according toat least one of the categories; a quantitative aggregation of associateddata sets according to at least one of the categories; and/or binnedaggregation of associated data sets according to at least one of thecategories.

An example aggregation scheme includes a nested aggregation ofassociated data sets according to at least two of the categories.Example and non-limiting aggregation schemes include: an associated dataset count according to at least one of the categories; a sum ofassociated data sets according to at least one of the categories; anaverage of associated data sets according to at least one of thecategories; an applied function of associated data sets according to atleast one of the categories; an applied formatting of associated datasets according to at least one of the categories; and/or combinations ofany two or more of the foregoing.

Example and non-limiting aggregation user interface elements include: adedicated aggregation input element; a table supercell; a table categoryheading; a toolbar interface element; a menu interface element; and/or acontext triggered element. Example and non-limiting table input groupingvalues include: a user selection of a dedicated aggregation inputelement; a user drag operation to a table supercell; a user dragoperation of a table supercell; a user drag operation including anelement of a first table and an element of a second table; a user menuinterface element selection; and/or a user selection of a contexttriggered element. An example operation 3202 to interpret a tablegrouping input value includes interpreting a user drag operationincluding at least two data values, where the operation 3206 todetermine the aggregation value includes preserving original values forthe at least two data values.

In certain embodiments, a procedure 3202 further includes an operation(not shown) to interpret a user data edit value corresponding to one ofthe plurality of associated data sets viewable in the aggregated tableview, and updating at least one data value on the table in response tothe user data edit value.

Referencing FIG. 39, an example system 3900 includes a computing device3902 configured to manage tables, for example in a document for use inany system disclosed herein. An example computing device 3902 is aclient computing device, for example in communication with a documentserver. The example computing device 3902 includes a unified documentsurface application circuit 3904 that interprets a user table inputvalue 3906, where the user table input value 3906 includes a number oftable data values. An example user table input value 3906 includes tabledata values placed on a unified document surface, whereby the user 814creates a table in a document. The example computing device 3902includes a table management circuit 3908 that determines a tableorganization value 3910 in response to the table data values. Exampleand non-limiting table organization values 3910 include: a column namingscheme; a sorting scheme; a filtering scheme; an aggregation scheme;and/or a formatting scheme. Accordingly, the table management circuit3908 provides for an automatic table creation from user entry of datavalues, and provides for a powerful interface for the user 814 tomanipulate the information on the table without excessive codingoperations, organization, and/or manual entry. The example computingdevice 3902 further includes a user display circuit 3912 that provides atable view 3914 in response to the table organization value 3910. Forexample, the table management circuit 3908 arranges the data of thetable within the document according to the table organization value3910, and the user display circuit 3912 provides a table view 3914 of aportion of the table currently being accessed by the user 814, includeall, a portion, or none of the table depending upon the specific useroperations.

The example system 3900 further includes the unified document surfaceapplication circuit 3904 further interpreting a user formula value 3916,where the user formula value 3916 does not include a row reference. Theprovision of allowing a user formula value 3916 without a row referenceallows the user to quickly and accurately provide formulaic output onthe table, without manually creating references to specific cells,and/or breaking references when editing the table. An example the tablemanagement circuit 3908 further updates the table organization value3910 in response to the user formula value 3916, and the user displaycircuit 3912 further updates the table view 3914 in response to thetable organization value. An example table management circuit 3908updates the table organization value 3910 by applying the user formulavalue 3916 to an entire column of the table—for example, a user 814enters a formula of “{circumflex over ( )}2”, and the table managementcircuit 3908 provides for an entire column of data that is squaredrelative to the prior condition before the application of the userformula value 3916. In certain embodiments, the table organization value3910 provides for the insertion, naming, and/or specific placement of aresult column in response to the user formula value 3916 and the appliedcolumn of data. Additionally or alternatively, the table organizationvalue 3910 applies the formula “in place”, replacing the viewed oractual results of the column with the results of the formula (e.g.updating the values to the formula result values, and/or displaying theresult values as visible results while the underlying column valuesremain the same). Previously known systems do not provide for updates ofan entire column of data with a single operation such as entering a userformula value 3916, and/or require numerous manual steps to enablecolumn-wise changing of table values. Further, previously known systemsrequire a similar spatial relationship between the calculated values andthe base values to which a formula is applied. Accordingly, previouslyknown systems provide for additional manual steps to create and presentthe data, and allow for the breaking of the data where a column ismoved, a member of the column is deleted, and the like.

An example table management circuit 3908 further selects the entirecolumn of the table in response to an operation such as: a drag-and-dropoperation of the user formula value to the column (and/or the columnheading to the user formula value); a user formula entry tool selection,where the formula entry tool comprises a graphical user interfaceassociated with the column; and/or a formula value referencing thecolumn. Accordingly, the user 814 can create the formula in a convenientplace on the document (e.g. on a canvas near the table, in clearlyvisible white space within the document, etc.), and simply drag theformula to the desired column, or the column header to the formula, andapply the formula to the entire column in a single operation.Additionally or alternatively, the table management circuit 3908provides for the addition of a result column, rapidly providing desiredoutput data in a format to be copied, linked, and/or extracted.Additionally or alternatively, operations of the system 3900, includingthe table management circuit 3908, are provided to an operation log(e.g., the local operation log 116—see the portion referencing FIG. 1).The operation log records operations performed in a non-ambiguous mannersuch that, if the operation of the operation log are performed, and/oradded to a snapshot and/or original operation log existing when the useropens the document, and/or an updated operation log provided while theuser had the document opened, a document consistent with the document asedited by the user would be created. Example operations captured on theoperation log include the creation of objects (e.g., tables, graphs,charts, and/or text flows), changes to objects (e.g., insertion ordeletion of text, columns, formulas, etc.), the deletion or movement ofobjects, and identification of objects for any of the foregoing.Identification of an object includes any identification method thatprovides for unique placement of the operations within the document, forexample edits to a column can be captured by reference to a uniquecolumn name, by reference to a column name within a unique table name,by reference to a unique column/table name, or any other options touniquely identify operations for the operation log.

An example system 3900 includes the table management circuit 3908further selecting the entire column of the table in response to aformula value referencing the column—for example with the bracketinclusion of a column name within the formula. The inclusion of a columnwithin a formula value referencing the column provides for a convenientoperation to provide output data from a table, with a desired formulaapplied, in any selected position within the document. An example tableis positioned on a canvas (see the portion referencing FIG. 97), andwhere the formula value is positioned on the canvas separate from thetable.

An example table management circuit 3908 further disambiguates betweentwo columns having an identical display name. For example, columnshaving a repeating monthly sequence, and named by month, may have two“January” columns separated by 12 columns. In certain embodiments, thetable management circuit 3908 disambiguates column names by: providing aprivate key for each column, wherein the private key may be displayed tothe user 814 or not; selecting a column that has the closest proximityto a current user position in the document; selecting a column that hasthe closest proximity in time to a last edit by the user 814 or adifferent user; and/or disambiguates the column according to a data typein the formula, and a most compatible column for the data type in theformula. Additionally or alternatively, the table management circuit3908 provides the user 814 with options among matching column headingsto allow the user to select the correct column. In certain embodiments,the computing device 3902 enforces unique column naming among tables inthe document.

An example table organization value 3910 includes a sorting scheme,where the unified document surface application circuit 3904 furtherinterprets a further user table input value 3918, and the tablemanagement circuit 3908 further updates the sorting scheme in responseto the further user table input value 3918. Accordingly, in certainembodiments, a sorting scheme is applied to create live table data thatsorts automatically as the user 814 enters data. In certain embodiments,the table view 3914 may be centered, fixed, or have a reduced movementrate on the document, such that re-sorting during user 814 entryoperations does not confuse or disorient the user. An example tablemanagement circuit further updates the sorting scheme by performing anoperation such as: continuously updating the sorting scheme as the userprovides the further user table input value; updating the sorting schemein response to the user selecting a different row of the table; andupdating the sorting scheme in response to the user completing a datavalue entry on the table. Accordingly, sort operations may occur whenthe user exits a particular cell and/or changes focus from a particularcell, updates when the user exits a particular row (e.g., allowing theuser to fully enter a row of data before sorting operations, and/orcompletes a data entry within a cell (e.g., upon hitting a “TAB”,“ENTER”, clicking another cell, or performing a similar operation).

An example table organization value 3910 includes a filtering scheme,where the unified document surface application circuit 3904 furtherinterprets a further user table input value 3918, and the tablemanagement circuit 3908 further updates the filtering scheme in responseto the further user table input value 3918. Accordingly, in certainembodiments, a filtering scheme is applied to create live table datathat sorts automatically as the user 814 enters data. In certainembodiments, the table view 3914 may be centered, fixed, or have areduced movement rate on the document, such that re-filtering duringuser 814 entry operations does not confuse or disorient the user. Anexample table management circuit further updates the filtering scheme byperforming an operation such as: continuously updating the filteringscheme as the user provides the further user table input value; updatingthe filtering scheme in response to the user selecting a different rowof the table; and updating the filtering scheme in response to the usercompleting a data value entry on the table. Accordingly, sort operationsmay occur when the user exits a particular cell and/or changes focusfrom a particular cell, updates when the user exits a particular row(e.g., allowing the user to fully enter a row of data before filteringoperations), and/or updates when the user completes a data entry withina cell.

An example table organization value 3910 includes the aggregationscheme, where the unified document surface application circuit 3904further interprets a further user table input value 3918 including adragging operation to add columns (e.g., extending a table to the right,where the unified document surface application circuit 3904 adds columnsin response to the dragging operation), and where the table managementcircuit 3908 further structured updates the aggregation scheme inresponse to the dragging operation. Referencing FIG. 41, a table 4102and aggregation set 4104 (e.g. a sum of the rows for each column in theexample) is depicted before a dragging operation, and referencing FIG.42, the table 4102 and aggregation set 4104 is depicted after thedragging operation, with a user entered value depicted to illustratethat the aggregation set 4104 has included the added rows. Theaggregation set 4104 is depicted slightly offset from the other columnsin the table 4102, although the aggregation set 4104 may be positionedanywhere, and/or formatted the same or distinctly from the rest of thetable 4102. The operations depicted in FIGS. 41 and 42 are consistentwith operations to protect data values in response to drag-and-dropoperations, and to relate data values and tables in a sensible manner inresponse to drag-and-drop operations, as described in systems throughoutthe present disclosure. Previously known systems overwrite data inresponse to a drag-and-drop of table columns over another table column,and/or disallow such operations. An example table management circuit3908 further names the added columns—for example using a default namingscheme (e.g. Column4, Column5, etc.), utilizing a name determinedaccording to semantic data in the column (e.g. a most frequent occurringvalue, a data type, a category represented in the data such as “footballteams,” “company”, “engineer,” “address”, or the like).

Referencing FIG. 40, an example procedure 4000 includes an operation4002 to interpret a user table input value, the user table input valueincluding a number of table data values, and an operation 4004 todetermine a table organization value in response to the table datavalues, where the table organization value includes at least one valuesuch as: a column naming scheme; a sorting scheme; a filtering scheme;an aggregation scheme; and/or a formatting scheme. The example procedure4000 further includes an operation 4006 to provide a table view inresponse to the table organization value. An example procedure, incertain embodiments, further includes an operation 4008 to interpret auser formula value, where the user formula value does not include a rowreference, and an operation 4010 to update the table organization valuein response to the user formula value, and an operation 4014 to updatethe table view in response to the table organization value. An exampleoperation 4010 includes updating the table organization value byapplying the user formula value to an entire column of the table. Anexample operation to select the entire column of the table includes anoperation such as: a drag-and-drop operation of the user formula valueto the column; a user formula entry tool selection, where the formulaentry tool includes a graphical user interface associated with thecolumn; and/or a formula value referencing the column. An exampleprocedure includes an operation to select the entire column of the tablein response to a formula value referencing the column, where the tableis positioned on a canvas, and where the formula value is positioned onthe canvas separate from the table. An example procedure furtherincludes an operation to disambiguate between two columns having anidentical display name.

An example table organization value includes the sorting scheme, wherethe procedure further includes an operation 4012 to interpret a furtheruser table input value, and an operation 4014 to update the sortingscheme (e.g. update the table organization value) in response to thefurther user table input value. An example procedure 4000 includes theoperation 4014 including at least one operation such as: continuouslyupdating the sorting scheme as the user provides the further user tableinput value; updating the sorting scheme in response to the userselecting a different row of the table; and/or updating the sortingscheme in response to the user completing a data value entry on thetable. For example, referencing FIG. 130, a sorted column of data isdepicted, where sorting of the data is controllable by the user 814, forexample utilizing a sorting tool interface 13002 to indicate desiredsorting parameters. The sorting of the column of data can be implementedto be continuous, instant, periodic, upon user request, after enteringdata, and/or according to any other principles described herein.

An example table organization value includes the filtering scheme, wherethe procedure further includes an operation 4012 to interpret a furtheruser table input value, and an operation 4014 to update the filteringscheme (e.g. update the table organization value) in response to thefurther user table input value. An example procedure 4000 includes theoperation 4014 including at least one operation such as: continuouslyupdating the filtering scheme as the user provides the further usertable input value; updating the filtering scheme in response to the userselecting a different row of the table; and/or updating the filteringscheme in response to the user completing a data value entry on thetable. An example table organization value includes the aggregationscheme, where the procedure 4000 further includes an operation 4012 tointerpret a further user table input value including a draggingoperation to add columns, and updating the aggregation scheme inresponse to the dragging operation. An example procedure furtherincludes an operation to name the added columns.

Referencing FIGS. 129 and 101-104, example table layouts 12900 areschematically depicted. The example table layout 12900 includes a tabletitle 12902 (e.g., “Table1”), which may be a display title, and a tablemay additionally or alternatively have a referencing title (e.g., usedin formulas referencing the table). The example layout 12900 furtherincludes a number of column headings (in certainembodiments—“categories”) 12904, and a context tool user interface12908. In the example of FIG. 129, the context tool user interface 12908is illustrating, for example, a filtering operation. In certainembodiments, the context tool user interface 12908 provides for ease ofaccessing a menu, certain operations (e.g. filter, aggregate, format,etc.), and/or operations including the whole table or just portions ofthe table. A given set of data in a single column 12910 or categoryincludes all row information. In this example, the table and each of itsfive columns have been given default names, “Column 1,” “Column 2,” andso forth. The rows are not named by the user at this stage, althoughrows may remain unnamed, or have a name. A user may change the tablename, column name, row name, and may also add or delete any number ofcolumns or rows to or from the table. The convention of “rows” and“columns” herein is for purposes of illustration. In certainembodiments, data categories may be organized in columns (e.g. as in theillustration of FIG. 129) or in rows (e.g. transposed from FIG. 129)without changing the principles of operation of the present disclosure,and any such embodiments are contemplated herein. For example,referencing FIG. 140, example data categories are depicted column-wise14002, or row-wise 14004.

The example system provides for tables and related table functionalityof the present disclosure such that users have the ability to organizedata in a two-dimensional layout of rows and columns. An exampleincludes each table and/or object in a document having a unique name,allowing users to reference the table and its data elsewhere in thedocument. Certain embodiments described throughout the presentdisclosure include the ability to reference tables, data, and/or otherobjects without unique names and/or with only locally unique names. Inembodiments, tables are provided to allow users to name and refer tocolumns within the table, to filter rows based on custom formula rules,to sort rows based on column values, and construct formulas that applyto full columns of data, as described herein. The set of unique columnnames may form a schema for a table and its data. Each row in the tablemay then map to this schema. According the embodiments of the presentdisclosure, tables can be provided with a fixed naming scheme (e.g. A1,B1, C1 representing the first three elements of the first row) and/orprovided without a fixed naming scheme. An example embodiment includesallowing a user to reference only a single value—such as a columnheading, name, and/or key—and thereby perform: formulaic operations,sorting, filtering, and/or formatting, on every row element of thecolumn. In certain embodiments, the naming scheme (e.g., absolute,fixed, referential, etc.) is selectable, and/or set according to rules(e.g., user defined rules, administrator defined rules, and/or rulesdefined in a template). In certain embodiments, a first naming scheme isutilized for a first table or type of table, and a second naming schemeis utilized for a second table or type of table. In certain embodiments,a distinct document section may have, or be allowed to have, distinctnaming schemes for tables and/or objects therein. One of skill in theart, having the benefit of the disclosure herein, can readily determinea naming scheme for tables or objects, including whether multiple namingschemes are supported in a given system, and/or a level of user and/oradministrator control provided over naming schemes. Certainconsiderations for selecting a naming scheme include: the desired easeof referencing columns versus directing operations to individual cells;formula language consequences to naming schemes; the desired level ofhandling (e.g., including at least design time capability for designingand implementing a highly capable versus lower capability tablemanagement circuit, processing power available, communication speed andbandwidth available, etc.); and the types of documents and operationsthat users are likely to be working with.

Referring to FIG. 105, in an example, a table may contain a row for eachelement in a category, such as each Major League Baseball team. Each rowmay include the team name, the team's league, the team's division, thenumber of wins and losses for each team in 2014, or some other type ofdata. In the Filter Bar in the top right of the table shown, the datamay be filtered to only include those rows that satisfy a formula, suchas, in the example of FIG. 131:League=“American” && Division=“East”

As shown, this may cause all other rows to be hidden from view. If theformula is cleared from the Filter Bar, the rows for all teams may againbecome visible. If a row were added that did not meet the filteringcriteria, it may be filtered from view according to the selectedupdating scheme for the table.

Referencing FIG. 106, column C of the table depicted is a calculatedcolumn. The formula for the calculation may be added using a selectableuser interface 13202 functionality under the Column tab, for example byselecting a user interface icon associated with the column, such as atab format where a first tab 13204 depicts the table, a second tab 13206provides column control interface options, and a row tab 13208 providesrow control interface options. The tabs 13204, 13206, 13208 may betermed an “Inspector” function, or have any other naming or referencingconvention. For example, within the tab functionality, columncalculations may allow users to reference data based on, for example,the column names. The calculation may apply across the entire column. Inthe example depicted in FIG. 132, the formula 13210 for output of columnC is a simple [A+B], which means that for each row in the table, thevalue of column C will be equal to the sum of the values in column A andcolumn B for that same row. Any other type of formula and/or referencevalues may be applied to a column output. Referring to FIG. 108, tableswith a unique, column-focused structure, may be continuously orotherwise evaluated and/or updated using sorting and filtering, and acolumn-centric approach to table formulas may present the analyticresults as depicted in FIG. 108.

In embodiments, referencing data in tables may be based on semanticallymeaningful field names (e.g., column names), as opposed to gridcoordinates. In certain embodiments, sorting and filteringfunctionality, as described herein, may be continuously re-evaluated asnew data is added, so that there is no need to, for example, push abutton to initiate and re-apply a filter or sort after new content isadded. Column-based formulas may allow users to use other column namesas input to the formula, so that it doesn't matter or impact formulacalculations if the columns are moved, as the formulae will not “break,”but will rather retain their column, or other references that are neededto successfully apply the formulae.

An example system 3900 includes referencing data in tables utilizing acolumn indicator only without a row reference—for example where aformula applies a column calculation and individual row references arenot needed by the user 814 to access each row. Example column indicatorsinclude a semantically meaningful name for the column, an arbitrary namefor the column (e.g., “Column1”), and/or an identification number forthe column (e.g., a primary key). An example system 3900 allows the user814 to reference a column by utilizing the column name, such as[AnnualSales] in a formula, for example where column names are enforcedto be unique either globally, locally, or at a selected scope (e.g.,within a document section, page, canvas, tab, or other hierarchicalelement of the document). In certain embodiments, the user 814references the column name with a name that is not unique, but isunderstood in context (e.g., selecting a closest one of the columnsnamed “Column1” to the user location in the document). In certainembodiments, the user 814 utilizes only a column name in a formula, andthe system 3900 utilizes the column name as a display mask for the user,but assigns a primary key in metadata which may be selectively visibleto the user 814 or invisible to the user. In certain embodiments, thesystem 3900 assigns a primary key in response to a user interaction suchas moving a column or table from a first location in the document to asecond location in the document (e.g., creating an ambiguity where asecond “Column1” may be present in the new location), and/or in responseto a user interaction creating or moving another object into a locationwithin the document that creates an ambiguity with the column name forthe column or table that has not moved.

In certain embodiments, the system 3900 disambiguates a reference, suchas a column name or table name, by presenting the user 814 with optionswhen a potentially ambiguous reference is entered, and/or by presentingthe user 814 with additional information for one or more options (e.g.,displaying an otherwise hidden primary key, displaying offset data suchas neighboring column names, a few rows of information, and/or a tablename).

In certain embodiments, the column name and/or primary key for a columnare stored in the operation log. In certain embodiments, displayparameters for the user 814 are marked in the operation log, for examplewhere the user is working with a column name, and the system 3900 isusing the column name as a mask for user display but operatingcalculations from the primary key or other unique identifier. Theutilization of masks for user convenience, and additional metadata fordisambiguation or enforced uniqueness, may be applicable to any objectin the document, including at least table names, column names, rownames, graphs, charts, controls, and/or any elements or properties ofany of the foregoing.

Additionally or alternatively, the utilization of masks and/oradditional metadata may be applicable to formula entries, where theformula observed and edited by the user may be a mask of the formula,and metadata, primary keys, and/or hierarchical disambiguation names areused by an underlying calculation engine. For example, a user 814 mayenter [EmployeeList] in a formula for the table named “EmployeeList”,where the hierarchical disambiguation name[FullDocument].[Canvas1].[EmployeeList] is used by the underlyingcalculation engine. Any formulas, object references, and/or object names(e.g., for display to the user 814) may be stored in the operation log,and/or be associated in the operation log with correspondingdisambiguation information, metadata, primary keys, and/or hierarchicaldisambiguation names.

In certain embodiments, a move or changing of a formulas, objectreferences, and/or object name that results in a change of the maskinformation displayed to the user 814 may result in: no change; acorresponding change; and/or a distinct change separate from the maskinformation change; in the corresponding disambiguation information,metadata, primary keys, and/or hierarchical disambiguation names. Anexample operation log stores the mask information and the disambiguationinformation, including the changes to the mask information and thedisambiguation information. A further example operation log stores onlythe updated mask information and/or disambiguation information—forexample in response to a snapshot event.

Referencing FIG. 100, example and non-limiting reference models fortable elements are depicted. The reference model utilized in aparticular embodiment may be applied as a default, selectable by a useror administrator, and/or applied according to rules such as user-definedrules, administrator-defined rules, and/or rules applied according to atemplate. Referring to the examples depicted in FIG. 100, a driver modelmay be constructed in each case. In the example of FIG. 100, a “mask”represents a value shown to the user, where the underlying ID for thereference may be another value. The example Notations in FIG. 100 areconsistent with the example table depicted in FIG. 102. Referencing FIG.102, a model may be created that calculates the number of shoes acompany has based on how many people work there. It may utilize a drivervariable table, rolling geometric references, and absolute andnon-geometric references. FIGS. 102 and 124 further depict aggregationsets 4104, in the examples set off to the right of the table values.

In embodiments, building a driver model spreadsheet with the limitationsof formulas only possible in rows or columns and using absolutereferences only may be overly restrictive, partially due to the factthat a spreadsheet may fail when a user tries to extend the headcountgrowth formula to multiple columns or months. Independent tables orgrids may have to be setup, for example as depicted in FIG. 125, foreach month as a user would need cell-specific formulas. The user maybuild a similar model, but with separate grids for every column creatingthe effect of cell-specific formulas, as in FIG. 125. Accordingly, incertain embodiments, a non-absolute referencing scheme for a table maybe selected and/or applied. Shifting the formulas to cells vs rows andcolumns may alleviate some of the problems found in theformulas-in-a-row example for a spreadsheet like this, having separategrids for heterogeneous row/column formula types is unnecessary.However, absolute references may also be used. If absolute referencesdon't have the ability to simulate geo-shift during a user draggingtable content (e.g., be able to lookup the next month in the sequencebefore absolutely resolving the formula for the cell), then creatingthis example spreadsheet would be manual, as shown in FIG. 101.

In embodiments, moving from a purely “absolute” reference model to onethat allows for relative lookups (e.g., based on some a unique key) mayrun into similar problems described in the “drag example” above. Incertain embodiments, unique keys are applied globally throughout adocument (e.g. each table, row, and column has an enforced uniquereference name or primary key). In certain embodiments, uniqueness isenforced locally—such as within a canvas, document section, and/orsheet. In certain embodiments, uniqueness is enforced when a competingreference name is created—for example a primary key is generated whenduplicate names are created. The primary key may be depicted to the user814, or masked and duplicates prompted to the user for selection whenthe user 814 enters a potentially ambiguous reference (e.g. the“duplicate” is the mask, not the primary key). An example depictingprimary row keys to the user 814 is illustrated in FIG. 102, where theprimary row key is the “ID” field of the “Employee” table.

Referencing FIG. 46, a system 4600 includes (e.g., a document server)communicatively coupled to a second computing device 4604 (e.g., aclient computing device), where the first computing device 4602 includesa document server that communicates a data value 4608 to the secondcomputing device 4604, where the data value 4608 includes at least aportion of a document 4606. The example second computing device 4604includes a user interaction circuit 4626 that interprets a userreference entry 4618. A user reference entry 4618 may be any valueindicating that a user 814 is entering a data or object reference, suchas a table column name in a formula present in the document 4606 and/ordata value 4608. The second computing device 4604 further includes areference management circuit 4616 that determines a reference returnvalue 4620 in response to the user reference entry 4618. For example,and without limitation, a reference return value 4620 includes an objectname, an object property, an object method, a data value, a pointer toexternal data (e.g. source data 4610), and/or any other referenceableobject within the document 4606 and/or source data 4610. External data,as utilized herein, includes without limitation: data positioned outsidethe first computing device 4602 and second computing device 4604, suchas source data 4610; data positioned on the first computing device 4602but outside the document 4606; data positioned within the document 4606at a distinct location from the user accessed portion of the document4606 (e.g., a different document section, canvas, page, table, etc.);and/or data positioned at a different location than a current user focusarea (e.g., a column heading for a table, where the user 814 isproviding a formula for the column table, and wherein the column headingdata is outside the scope of the entry field and/or text for theformula, including in certain embodiments where the formula is entereddirectly onto the table). The description herein referencing datafurther includes, without limitation: data per se (e.g., text flowentries, values in a table, etc.); object names; object properties;object mask names (e.g., a display name that may differ from an objectprimary key or reference name); names or values for pointers,references, and/or links; references to API interfaces and/or sourcedata 4610 sources (e.g., a URL, library call, etc.); and/or metadata(which may be hidden, displayed, and/or selectively displayed). A userreference entry 4618 may be a partial entry (e.g., a first character orcharacters of an object name, etc.), where the reference managementcircuit 4616 further determines the reference return value 4620 inresponse to the partial entry, and/or updates the reference return value4620 in response to further additions to the user reference entry 4618(e.g., providing a narrowing list of reference return values 4620 as auser 814 types in a user reference entry 4618).

The example second computing device 4604 further includes a user displaycircuit 4612 that determines a document view 4614 in response to thereference return value 4620, and provides the document view 4614 to theuser 814. Example and non-limiting user reference entries 4618 include aformula entry value, a reference request value (e.g., the user 814enters a character sequence, menu or toolbar selection, and/or utilityselection indicating that a reference entry is being made), and/or akeyword request value (e.g. a formula entry by the user 814 interpretsthe user 814 entries as a reference, and the reference managementcircuit 4616 searches the document object model, document 4606, datavalue 4608, and/or source data 4610 for matching or relevant keywords todetermine the reference return value 4620).

An example system 4600 includes the reference return value 4620 being avalue such as: a table column name value; an object primary key value;an object name value; a mask value including an object name value fordisplay and a primary key value; a scope selection value; and a list ofany one or more of the foregoing. As utilized herein, a primary keyvalue includes, without limitation, any value with enforced uniquenesswithin the document 4606 and/or a selected scope of the document 4606(e.g., a section, sheet, canvas, etc.), and includes either a fieldenforced to be unique (e.g., a column name), a group of fields enforcedto be unique according to a combination of the fields (e.g., a columnname combined with a table name), and/or a reference identificationvalue (e.g., auto-generated by the system 4600 and/or entered or editedby the user 814). A mask value as utilized herein includes, withoutlimitation, any value configured for display to the user 814, wherein anadditional value not ordinarily displayed to the user 814 forms a partof or all of the masked value for certain purposes and operations. Forexample, a mask value including an object name value for display and aprimary key value includes, in certain embodiments, a display name for adata value and a primary key value that may include all or a part of themask value, and/or may be separate entirely from the mask value. Incertain embodiments, the user 814 may selectively display the mask valueand/or primary key value, and/or the mask value and/or primary key valuemay be automatically displayed to the user contextually (e.g., indisambiguation operations, in certain views of the document 4606activated by the user 814 such as a metadata view).

An example user reference entry 4618 includes a reference to a sourcedata 4610 including an external source, where the reference managementcircuit 4616 further updates a reference parameter in response to achange in the external source. A reference parameter includes, withoutlimitation, a referencing syntax (e.g. a table name, a column name, apointer definition, etc.). Accordingly, in certain embodiments, where apointer or reference location changes outside of the scope of the firstcomputing device 4602, the document 4606, and/or the data value 4608,the reference, link, and/or pointer utilized by the user 814 isautomatically updated and does not “break”. An example referencemanagement circuit 4616 updates a reference parameter by polling anexternal source, for example re-fetching reference data periodicallyand/or at selected times, and reconciling changes in the external sourcewith locally stored data. An example reference management circuit 4616updates a reference parameter by being responsive to a push data updatefrom the external source—for example the external source calls in to thereference management circuit 4616 (e.g., utilizing an HTTP webhookrequest), and the reference management circuit 4616 reconciles changesin the external source received from the push with the locally storeddata. In certain embodiments, a reference management circuit 4616utilizes both a polling operation and a push notification.

An example system 4600 further includes the reference management circuit4616 further determining a reference ambiguity condition, where thereference return value 4620 includes a disambiguation value. Forexample, a user reference entry 4618 may not uniquely define a desiredreference, link, and/or pointer, either due to a lack of unique namingof available reference objects (e.g., a table column), because the userreference entry 4618 is presently a partial entry (e.g., a firstcharacter or characters of the entry), and/or because the referencemanagement circuit 4616 determines the user 814 intended reference isnot yet clear (e.g., a number of mask values match or are close to theuser reference entry 4618, even where an underlying primary key valuefor each is unique, where the user 814 may have misspelled an entry andthe intended reference is not clear, and/or where the user 814 isintending a semantic entry and relying on the reference managementcircuit 4616 to suggest possible matches for the entry). In a furtherexample, the reference return value 4620 further includes a number ofdisambiguation values (e.g., a number of suggested reference entries,ancillary matches such as related websites, tables, and/or externaldata, etc.), and the example user display circuit 4612 furtherdetermines the document view 4614 further in response to the pluralityof disambiguation values. An example user display circuit 4612 displaysa first number (e.g., between 1 and 10, between 2 and 5, and/or between3 and 15) of disambiguation values, for example as suggestions to theuser, in a list or menu, within the document view 4614. Additionally oralternatively, the user display circuit 4612 orders the number ofdisambiguation values by a selected priority and/or relevance, providesa preview of one or more of the disambiguation values, and/or indicatesthat additional disambiguation values beyond those displayed areavailable. An example reference return value 4620 includes an objectname, an object method, an object property, and/or a dereferencingoption value (e.g., allowing the user 814 to return the data at thereference location rather than the reference value).

Referencing FIG. 47, an example procedure 4700 includes an operation4702 to interpret

a user reference entry, an operation 4704 to determine a referencereturn value in response to the user reference entry, an operation 4706to determine a document view in response to the reference return value,and an operation 4708 to provide the document view to a user. Theexample procedure 4700 includes the user reference entry as a value suchas: a formula entry value, a reference request value, and/or a keywordrequest value.

An example procedure 4700 includes the reference return value includinga value such as: a table column name value; an object primary key value;an object name value; a mask value comprising an object name value fordisplay and a primary key value; a scope selection value; and/or a listof any one or more of the foregoing.

An example procedure 4700 further includes user reference entryincluding a reference to a source data that is an external source, anoperation 4710 to determine if the external source has changed, and inresponse to the 4710 determining the external source has changed, anoperation 4712 to update a reference parameter.

Referencing FIG. 48, an example procedure 4800 further includes anoperation 4802 to determine whether a reference ambiguity is present,and in response to determining the reference ambiguity is present, anoperation 4804 to determine disambiguation value(s), an operation 4806to get a user selection from the disambiguation value(s), and theoperation 4704 to determine the reference return value further inresponse to the disambiguation value(s) and/or the selection from thedisambiguation value(s). An example procedure 4700 further includes theoperation 4706 to update the data view in response to the disambiguationvalue(s) and/or the selection from the disambiguation value(s).

Referencing FIG. 49, an example system 4900 includes a first computingdevice 4902 (e.g., a document server) communicatively coupled to asecond computing device 4904 (e.g., a client computing device). Theexample system 4900 further includes the first computing devicecommunicating a data value 4912 to the second computing device 4904,where the data value 4912 includes at least a portion of a document 4906and further includes a first table object 4914 and a second embeddedtable object 4916. The “embedded” description of the second embeddedtable object 4916 indicates the second table object is related to aparent object in a document model hierarchy, such as a sheet, canvas,tab, and/or document section. Additionally or alternatively, the firsttable object may be an embedded object, and/or the first table objectmay have the document 4906 as a parent object. The example system 4900includes each of the first table object and the second embedded tableobject having a corresponding table specific name, such as a unique namewithin the document, a locally unique name (e.g., within a sheet,canvas, document section, etc.), and a corresponding parent object name.The parent object name, in certain embodiments, is the reference namewithin the document model for the parent object of the table object,such as a sheet name, document section name, canvas name, tab name, etc.An example system 4900 includes a first parent object name correspondingto the first table object 4914 having a different name than a secondparent object name corresponding to the second embedded table object4916.

An example system 4900 further includes the data value 4912 furtherincluding a table referencing value directed to the second embeddedtable object 4916, wherein the table referencing value includes aportion of a formula 4918 including a corresponding parent object namethat is distinct from the first parent object name. An example formula4918 includes the second parent object name (e.g., the parent objectname of the second embedded table object 4916), and/or a referentialname (e.g., “thisSheet”, “thisTable”, “thisCanvas”, or the like) that isdistinct from the first parent object name.

Referencing FIG. 50, an illustration 5000 depicts a first table object5002 having a parent object name 5004 “Sheet1.” In the example, aportion of an example formula 5008 references“thisRow.Quiz2+thisSheet.PreviousGrade.” In the illustration 5000, theportion of the formula 5008 returns a value that is equal to the Quiz2column value from the table 5002 added to a “PreviousGrade” valueelsewhere in the document 4906. For example, the portion of the formula5008 may be utilized to perform a column-wise operation on the table5002 to update student grades. The portion of the formula 5008 may bepositioned anywhere within the document 4906, in the illustration 5006at a position in the document 4906 where “thisSheet” resolves to“Sheet1.” Additionally or alternatively, the portion of the formula 5008includes a reference to “Sheet1” rather than “thisSheet.” ReferencingFIG. 51, a continuing illustration 5100 is depicted, with a secondembedded table object 5102 embedded within the parent object 5104referenced as “Sheet2.” In the illustration 5100, the second embeddedtable object 5102 is a linked table to the first table object 5002, forexample with one or more columns deleted and/or hidden. The illustration5100 includes a portion of a formula 5008, referencing“thisSheet.PreviousGrade.” In the illustration 5100, the portion of theformula 5008 returns a value that is equal to the Quiz2 column valuefrom the table 5002 (e.g., the first table object 5002) and the value“PreviousGrade” provided on “Sheet1” 5004. It will be noted that the“thisSheet” reference in the illustration 5100 resolves to “Sheet1” 5004rather than “Sheet2” 5104, even where the portion of the formula 5008 ispositioned on “Sheet2” 5104 or elsewhere in the document, rather than on“Sheet1” 5004. In certain embodiments, the reference “thisSheet”includes a mask value for display, for example to keep the displayconsistent with an entry by a user (e.g. user 814). Additionally oralternatively, the reference “thisSheet” is linked to “Sheet1” inanother manner—for example a system table in an operation log and/or adedicated metadata table, where the link between the particular instanceof “thisSheet” and “Sheet1” is stored. In certain embodiments, it willbe recognized that a second embedded table 5102 can be utilized, wherereferential values in a formula or other location (e.g., within a cellof a table) do not break when the formula, table, or other referringobject is moved within the hierarchy of the document. Previously knownsystems map the referential value, e.g. “thisSheet”, to the parent ofthe object, breaking the link to the source data when an object is movedor created under another parent object—for example in an embodimentsimilar to the illustration 5100 for a previously known system,“thisSheet.PreviousGrade” returns a value of “PreviousGrade” from“Sheet2” 5104, which may not exist and/or may be a different value thanthe original “PreviousGrade” from “Sheet1” 5004. In certain embodiments,the parent hierarchy for the table referencing value is the first parentobject name—for example in the illustrations 5000, 5100, the reference“thisSheet.PreviousGrade” and/or the formula portion 5008 utilize“Sheet1” as the parent in the parent hierarchy of a document model.Additionally or alternatively, the table referencing value is mapped to“Sheet1” apart from the parent hierarchy, for example utilizing “Sheet1”for the described purposes (e.g., preserving intended information when arelated object is referenced or moved) and utilizing “Sheet2” in theparent hierarchy for other purposes (e.g., contextual determinations forthe table referencing value such as formatting, acceptable ranges,and/or implementation of document section specific rules).

An example system 4900 further includes the second embedded table object4916 being a table linked to the first table object 4914 (e.g., as inthe illustrations 5000, 5100). An example system 4900 further includesthe formula 4918 further including a corresponding parent object namethat is the second parent object name. For example, referencing theillustration 5100, if the portion of the formula 5008 in theillustration 5000 referenced “Sheet1.PreviousGrade,” an example includesthe portion of the formula 5008 in the illustration 5100 having“Sheet2.PreviousGrade” (the second parent object name), but thereference in the formula continuing to look at “Sheet1.PreviousGrade” toresolve the portion of the formula 5008. Additionally or alternatively,the unified document surface application circuit 4908 determines whether“Sheet2” includes a “PreviousGrade” value, marks the reference “Sheet2”for the user indicating that a different value is being utilized (e.g.,a tooltip, selected character, and/or other notification highlighting tothe user 814 that the formula 4918 includes a reference managementoperation for continuity, etc.).

Referencing FIG. 49, an example system 4900 includes the first computingdevice 4902 communicatively coupled to the second computing device 4904,where an example first computing device 4902 includes a document serverthat communicates the data value 4912 to the second computing device4904, and where the data value 4912 includes at least a portion of thedocument 4906 and further includes a first table object 4914. Theexample first table object 4914 includes at least one column and anumber of row values corresponding to each of the column(s), and whereat least one of the row values include a second table object 4916embedded in the first table object 4916. An example system 4900 includesat least one of the plurality of row values each including one of thesecond table objects 4916 embedded in the first table object 4914 (e.g.,the first table object 4914 includes a column of tables). ReferencingFIG. 52, an illustration 5200 of a first table object 5202 includes asecond table object 5204 in the column “Grades” (the third column in theexample). The illustration 5200 provides for a convenient organizationfor the user 814 where a column can readily include richer embeddedinformation than single data values within a cell of a table. Theillustration 5200, which depicts, for example, class locations and namesfor a professor, and further includes a roster of each class withassociated grade recordations, is a non-limiting example of autilization of a second table object 4916 embedded in a first tableobject 5200.

An example system 4900 further includes the data value 4912 furtherincluding a formula 4918, where the formula 4918 includes a referencevalue to a column of each of the second table objects 4916. For example,a formula 4918 referencing “Table1.Grades.Quiz2.[Method]” (where thefirst table object 5200 reference is “Tablet”) performs the [Method]operation on each member of the “Quiz2” column of each of the secondtable objects 4916 within the first table object 5202. The describedsyntax is a non-limiting example, and any formula syntax may beutilized. Additionally or alternatively, the described [Method] may beany operation, including formula manipulations of the “Quiz2” columnvalues that are not method operations of class objects. An exampleunified document surface application circuit 4908 performs a column-wiseoperation on each of the second table objects 4916 in response to theformula 4918. It can be seen that the example system 4900 provides apowerful interface for a user 814 to readily reference, manipulate,and/or create derivative information from columns of a table object,whether an embedded table object (e.g. the second table objects 4916) ora higher level table object (e.g. the first table object 4914).Previously known system do not provide for convenient column-wiseoperations from a single command (e.g. the formula 4918), embeddedtables within table columns, and/or for convenient column-wiseoperations within embedded tables. The second table objects 4916 in theillustration 5200 have the same column values, although each of theembedded table objects may have distinct column values. An exampleunified document surface application circuit 4908 performs onlyapplicable operations to the embedded tables, for example where a columnvalue for the embedded tables is referenced in a formula 4918, onlyoperations for embedded tables having that column value are performed.In certain embodiments, certain ones of the first table column (e.g.,“Grades”) may have embedded tables, and other ones of the first tablecolumn may have no values, objects other than a table (e.g., images,data values such as a number or string, graphs, charts, and/or cards).

An example system 4900 includes at least one of the number of row valueseach including an aggregation value. For example, referencing FIG. 53, afirst table object 5202 includes two columns—“Road Runner” and “Wile E.Coyote”, wherein one or more rows of the first table object 5202 includean aggregation value 5204. In the example of FIG. 53, ordered items areaggregated, such as “In progress” 5302, where the aggregation value 5204includes an embedded table of orders matching each category ofaggregation. In the example, a formula 4918 can readily perform acolumn-wise operation on the aggregation value 5204, for example markingitems by category for follow-up, reporting for taxes, inventory, etc. Anexample system includes each of the row values including an aggregationvalue 5204. In certain embodiments, only one or more row values includean aggregation value 5204.

Referencing FIG. 54, an example procedure 5400 includes an operation5402 to provide a first table object including a table specific namecorresponding to the first table object and a first parent object namecorresponding to the first table object. The example procedure 5400further includes an operation 5404 to provide a second embedded tableobject including a table specific name corresponding to the second tableobject and a second parent object name corresponding to the second tableobject. In certain embodiments, the first parent object name is distinctfrom the second parent object name. The procedure 5400 further includesan operation 5406 to process a formula including a table referencingvalue directed to the second embedded table object, where the tablereferencing value includes a corresponding parent object name that isdistinct from the first parent object name, and an operation 5408 torelate a parent hierarchy for the table referencing value to the firstparent object name. An example second embedded table object includes atable linked to the first table object. An example includes thecorresponding parent object name as the second parent object name.

Referencing FIG. 55, an example procedure 5500 includes an operation5502 to provide a first table object, where the first table objectincludes at least one column and a number of row values corresponding tothe at least one column, and an operation 5504 to provide at least oneof the number of row values as a second table object embedded in thefirst table object. The example procedure 5500 further includes theoperation 5504 including each of the number of row values as a secondtable object embedded in the first table object. The example procedure5500 further includes an operation 5506 to process a formula, where theformula includes a reference value to a column of each of the secondtable objects, and/or an operation 5508 to perform a column-wiseoperation on each of the second table objects in response to theformula. An example procedure 5500 includes each of the row values beingan aggregation value.

Certain example embodiments are described following to implement one ormore systems, system aspects, and/or operations of the presentdisclosure as an application programming interface (API). Withoutlimitation, any aspects of any description throughout the presentdisclosure apply to certain embodiments of systems and operations toprovide an API. The described examples are non-limiting, and it iscontemplated that any system aspect, system functionality, and/oroperations described throughout the present disclosure may beimplemented as an API. Accordingly, the benefits of aspects of thedisclosure are accessible to applications that do not otherwiseincorporate systems and/or procedures of the present disclosure, toenhance capabilities for applications created by a user or administratorfor a specified purpose, and/or to allow for implementation of featuresdescribed herein with a pre-existing application.

Referencing FIG. 57, an example system 5700 includes a communicationlayer 5740 that provides access between a computing device 5702 and anexternal network 5724. The communication layer 5740 includes anycommunication devices, protocols, and/or components to provide forcommunications between the computing device 5702 and the externalnetwork 5724. An example system 5700 includes the computing device 5702as a server providing access to one or more API objects 5706 to theexternal network 5724. For example, the computing device 5702 may be aweb server, a cloud server, and/or a network server, and thecommunication layer 5740 may be an internet link, intranet, extranet,wide area network, and/or may further include wireless communicationdevices. In a further example, the external network 5724 includes one ormore devices 5738 that access the computing device 5702 to interfacewith the API object(s) 5706 to perform certain operations implementingone or more aspects of systems and operations described in the presentdisclosure. Additionally or alternatively, a communication layer 5740may be a communication layer between devices within a network, forexample the computing device 5702 providing access to the API object(s)5706 to other devices 5738 on the network. Additionally oralternatively, the computing device 5702 includes an application and/orvirtual device operating within a same device 5738 operating theexternal application accessing the API object(s) 5706, for example afirst application on a device 5738 accessing the API object(s) 5706operating within a second application on the device 5738. In a furtherexample, the communication layer 5740 includes an operating system,processor bus, and/or other communication layer within one or more ofthe devices 5738.

An example computing device 5702 includes the one or more API objects5706, and an access interface circuit 5704 that exposes one or more ofthe API objects 5706 to the communication layer 5740. Additionally oralternatively, exposure of the API objects 5706 includes features toprovide a subscription service, and login and/or authenticationinformation. Subscription services may provide access to selected APIobjects 5706 and/or selected external source data 5714 features and/ordata sources. For example, access to the computing device 5702 mayinclude access to a selected menu of API objects 5706 and/or a menu ofexternal source data 5714 options. Example and non-limiting externalsource data 5714 include any data sources such as websites, websitedatabases, databases, cloud databases, data within a file and/ordocument, and/or data provided by a data service at any location and/orvia any access method. In certain embodiments, “external” source data5714 is external relative to an application running on a device 5738,relative to the computing device 5702, and/or relative to the system5700. In certain embodiments, the external source data 5714 includesdata on the external network 5724, on the computing device 5702,accessible to the computing device 5702, accessible to the externalnetwork 5724, and/or accessible to the communication layer 5740. Anydescriptions of source data and/or external source data describedthroughout the present disclosure are additionally or alternativelycontemplated as examples of external source data 5714.

An example first API object 5708 includes an API object configured tointerpret a table input value 5726, where the table input value 5726includes a number of table data values, to determine a tableorganization value in response to the table data values, where the tableorganization value includes at least one value such as: a column namingscheme; a sorting scheme; a filtering scheme; an aggregation scheme;and/or a formatting scheme. The example first API object 5708 is furtherconfigured to determine a table view 5716 in response to the tableorganization value, and to provide the table view 5716 to thecommunication layer. An example system further includes the accessinterface circuit 5704 further receiving the table input value 5726 overthe communication layer 5740. In certain embodiments, the first APIobject 5708 is further configured to interpret a formula value 5730,where the formula value 5730 does not include a row reference, to updatethe table organization value in response to the formula value 5730, andto update the table view 5716 in response to the updated tableorganization value. An example first API object 5708 is furtherconfigured to update the table organization value by applying theformula value 5730 to an entire column of the table data values.

An example first API object 5708 is further configured to interpret atable grouping input value 5728 associated with the table data values,where the table data values include a number of categories and a numberof associated data sets corresponding to the number of categories, andto determine an aggregation value in response to the table groupinginput value, where the aggregation value corresponds to at least one ofthe number of categories. The example first API object 5708 is furtherconfigured to update the table view in response to the aggregationvalue. In certain embodiments, the system 5700 includes the accessinterface circuit further receiving the table grouping input value 5728over the communication layer 5740.

An example first API object 5708 is further configured to determine anaggregation scheme, where the aggregation scheme includes at least onescheme such as: qualitative aggregation of associated data setsaccording to at least one of the categories; quantitative aggregation ofassociated data sets according to at least one of the categories; and/orbinned aggregation of associated data sets according to at least one ofthe categories; and to determine the aggregation value in response tothe aggregation scheme. Example and non-limiting table input groupingvalues include at least one value such as: a selection of a dedicatedaggregation input element; a drag operation to a table supercell; a dragoperation of a table supercell; a drag operation including an element ofa first table and an element of a second table; a menu interface elementselection; and/or a selection of a context triggered element.

Without limitation to the application of any other aspects of thepresent disclosure, an example first API object 5708 is configured toperform any operations including any functions of the system 3900 and/orthe procedure 4000, and functions and operations described in thedisclosure referencing FIGS. 39 and 40.

An example system 5700 includes a second API object 5710 configured tointerpret a data selection 5732 including at least one data value, wherethe data selection 5732 includes at least one of a reference or a linkto an external source data 5714. The example second API object 5710 isfurther configured to create a data view 5718 in response to the dataselection 5732. An example system 5700 further includes the accessinterface circuit 5704 further receiving the data selection 5732 overthe communication layer 5740, and providing the data view 5718 to thecommunication layer 5740. An example second API object 5710 is furtherconfigured to interpret a data entry 5734, to provide an external sourcedata option 5720 in response to the data entry 5734, and to update atleast a portion of the data view 5718 in response to the external sourcedata option 5720. An example system 5700 further includes the accessinterface circuit 5704 further receiving the data entry 5734 over thecommunication layer 5740.

In certain embodiments, the second API object 5710 is further configuredto interpret a data entry 5734 including an edit of the at least onedata value, and to update the external source data 5714 to update theexternal source data 5714 in response to the data entry 5734. In certainembodiments, the second API object 5710 is further configured to querythe external source data 5714 and to provide an update of the data view5718 in response to the query. In certain embodiments, the second APIobject 5710 is further configured to perform the query operation inresponse to at least one of: an update time expiration; a notificationfrom an external device hosting the external source data 5714; a changein a second data value having a dependency on the external source data5714; a change in an object having a dependency on the external sourcedata 5714; a creation of a second data value having a dependency on theexternal source data 5714 and/or a creation of an object having adependency on the external source data 5714; and/or a request to providea continuous update of the at least one data value.

Without limitation to the application of any other aspects of thepresent disclosure, an example second API object 5710 is configured toperform any operations including any functions of the system 4300 and/orthe procedures 4400, 4500, and functions and operations described in thedisclosure referencing FIGS. 43 through 45.

An example system 5700 further includes a third API object 5712configured to interpret a reference selection 5736, to determine areference return value in response to the reference selection 5736, andto determine a reference return display 5722 in response to thereference return value. An example access interface circuit 5704 isfurther configured to receive the reference selection 5736 over thecommunication layer 5740, and to provide the reference return display5722 to the communication layer 5740. An example third API object 5712is further configured to determine the reference return value inresponse to at least one of: responsive information within a document(e.g. a document accessed by an application operating on a device 5738),or responsive information within an external source data 5714. Exampleand non-limiting external source data 5714 includes a data source suchas: a website, a database external to a document, a cloud storagelocation, a second identified document, and/or a network location.

Without limitation to the application of any other aspects of thepresent disclosure, an example third API object 5712 is configured toperform any operations including any functions of the system 2400, andfunctions and operations described in the disclosure referencing FIG.24.

It can be seen that the described systems and API objects provide for aplatform to receive commands from a distinct application, and returnresults utilizing capabilities described throughout the presentdisclosure.

In embodiments, according to the methods and systems of the presentdisclosure, an auto-completion functionality may be provided (referredto herein as “autocomplete”). Suggestions within autocomplete may bedetermined using a combination of a current formula in use, the cursorlocation within that formula, which, for example, may determine the textportion of the formula to be the subject of an autocomplete usage, andthe parsing context (e.g., what type of formula column, canvas, filter,etc.) of that formula. When generating autocomplete suggestions a usermay navigate down the tree, picking an appropriate “child” based on thecurrent cursor location. Each node may have an option to return a set ofautocomplete options if a sufficiently complete view of a formula isobtained, or the algorithm may continue to recurse down.

In embodiments, according to the methods and systems of the presentdisclosure, a number of custom data types may be created, utilized,and/or understandable to the system to determine suggested referencevalues, candidate entries, and/or autocomplete entries (e.g., for areference and/or formula value) are described following, withoutlimitation to any aspect described in the present disclosure. Furtherexample operations to provide reference values, candidate For example,as a user enters data, the data entry may be classified (e.g.,estimated, and/or provisionally assigned) as a particular type of data.Each formula (e.g. from a formula library) defined may have annotationsto define the data type of its return type, as well as the expected datatypes of each of its parameters. As dynamic calculations complete, thecalculation results may also be classified as a particular type of data.These classifications may be stored, for example, in histograms for eachcolumn, so that they may be used in the future to determine the type foran entire column (e.g., where a column accepts multiple data types,and/or is assigned a principle data type).

In embodiments, when a formula is converted to an abstract syntax tree(AST), according to the methods and systems of the present disclosure,each node (or part) of the formula with an expected return type may bedecorated. This expectation may start at the root of a tree and bepushed down. Some formula types, including but not limited to, filtersand conditional formats, may have an expected return type of a booleanexpression. Functions within a formula may have a series of argumentnodes, where each may be comprised of their own expression tree. Theroot of these trees may have an expected return type set based at leastin part on the expected type for that particular formula parameter, andthis may propagate down the tree. Operators may have similar behaviorsand, by analogy, function like formulas with, for example, twoparameters. In an example, the “%” (modulo) operator may expect that itsparameters would be numeric.

In embodiments, formula suggestions may start with a global list ofknown formulas. This list may be first narrowed by removing formulasthat do not have at least one alias that matches the given text that auser wants to complete. Further narrowing of the list may be attemptedby identifying a set of best matches and, if the user is completing anempty string, only the best matches may be returned, otherwise the bestmatches may be ranked above other matches. To determine best matchsuggestions, the expected return type of the given node may beevaluated, and the type of any value being chained into the formula ifone is present.

An example operation to consider a formula as a “best match” includes,without limitation: the formula is not marked as a low priority formula;there is a known expected return type, and the formula has a possiblereturn value assignable to the known expected return type; a chain nodeassociated with the formula includes a known type, where a) the formulaexpects a parameter, b) the best match expected type of the chainedparameter is not excluded from a match (optional); c) the type of thechain node is assignable to the best match expected type of the chainedparameter. A best match expected type of a chain node parameter may beexpected to be an array of the parameter's defined type if the parameteris a variable argument, otherwise it may be the type defined by theparameter.

An example operation includes a user attempting to complete a block oftext, where the user looks across the entire current context stack forreferences that can match the current search text. If a user is lookingfor only the best suggestions and an expected return type is known,these results may be filtered to only references that contain a datatype that is assignable to the expected return type, such as accordingto selections by the user, rules in the document (e.g., by the user, andadministrator, and/or document template).

When appropriate, values may be suggested (e.g., as candidate entries,auto-complete enabled entries, and/or suggested values) that are presentwithin another object. Values may be dynamically looked up in thatobject and a histogram generated so the values can be ranked based on,for example, frequency from highest to lowest. When analyzing the AST, anumber of scenarios may be evaluated to trigger a specific class ofsuggestions. The order in which the conditions of heuristics are checkedmay be important to generate a full experience, as conditions may not bemutually exclusive. Below are a few non-limiting examples:

Boolean Expression Extension

Condition: A boolean expression is expected, a complete booleanexpression is present, and the cursor is one space after the booleanexpression.

Suggestion: Logical operators.

Start of Grid Expression

Condition: A grid parser is the context and nothing has been typed.

Suggestion: Set of columns in the grid parser context.

Grid Expression Start of Extension

Condition: A grid parser is the context after a logical operator andnothing has been typed.

Suggestion: Set of columns in the grid parser context.

Local Grid Context Start of Boolean Expression

Condition: A local grid is the context and an empty parameter is thecontext with an expected type of boolean expression.

Suggestion: Set of columns in the local grid context.

Extend Table

Condition: An unchained table reference is present with an expectedreturn type that is not a table or grid.

Suggestions: Show reference and formula suggestions.

Extend thisDocument

Condition: An unchained document reference is present with an expectedreturn type that is not a document.

Suggestions: Show reference and formula suggestions.

Canvas Start

Condition: Nothing has been typed and a canvas parsing context is thepresent state.

Suggestions: Tables, controls, and views in the document with the onesin the current canvas are ranked first.

Reference Boolean Expression Extension

Condition: A column or variable reference is present when a booleanexpression is expected.

Suggestions: Equality operators, also isBlank and isNotBlank if atrailing space is not present, and comparison operators if the referencecontained data type is assignable to numeric or dateTime.

CurrentValue Boolean Expression

Condition: A missing parameter context is present and a booleanexpression is expected, and there is a local context of a column orthisRow.

Suggestion: Suggest the CurrentValue keyword.

Right Hand Side Operator Comparison to Reference

Condition: A right-hand side of a comparison is present where theleft-hand side has a resolved reference.

Suggestion: Aggregate the following suggestions:

If a current input is an empty string, and a local grid context ispresent, return RowColumnReferences for the local grid context. Else allreference options that match in the current context.

If the left-hand side data is of the type date time, suggest common datecomparison suggestions.

Suggest value suggestions present in the left-hand side reference, butdrop this suggestion if the only value match is an exact match.

If there is some text present, include any formula matches.

Unknown Literal

Condition: Fallback for node with unknown return type.

Suggestion: Return reference and formula matches.

In certain embodiments, autocomplete operations include autocompletionof any reference value, external data request, and/or formula entryvalue. Example and non-limiting autocomplete operations include:providing a list of candidate entries for a current user entry valuethat are consistent with the user entry value entered, which may be apartial or a complete value (hereinafter, “candidate entries”);providing previews for one or more candidate entries, where previewsinclude one or more of contextual information related to the candidateentry (e.g., offset column data for a table, a related table columnheading, a related table name, and/or a related object name, heading, orvalue) and/or a result set for one or more candidate entries if selected(e.g., a result of a formula resulting from the candidate entry; one ormore rows of a sorting and/or filtering operation as a result of thecandidate entry; and/or a depiction of a resulting object such as agraph, chart, and/or image as a result of the candidate entry); a carddepicting relevant information to the candidate entry. Additionally oralternatively, candidate entries are prioritized according to contextualinformation. Additionally or alternatively, previews for one or morecandidate entries are provided as a tooltip and/or at the request of theuser to provide additional information for candidate entries.Additionally or alternatively, a listing of candidate entries is updatedin response to the user adding to the current user entry value (e.g.,the candidate entry list is updated in real time as the user types).Additionally or alternatively, a notification is provided to the userthat additional candidate entries beyond those listed are available inthe system. Additionally or alternatively, one or more candidate entriesare determined according to a document model of objects, includingobject reference names stored in a document model, an operation log, asystem table, and/or document metadata, and/or further in response toavailable events and/or methods available for objects related to thecandidate entries and/or related to the user entry value. In certainembodiments, a formatting is applied to the user selection of thecandidate entries. In certain embodiments, a single candidate entry issupplied to the user for autocomplete operations.

Referencing FIG. 37, an example system 3700 includes a first computingdevice 3702 at least intermittently communicatively coupled to a secondcomputing device 3704, where an example first computing device 3702includes a document server, and where the document server communicates adata value 3712 to the second computing device 3704, where the datavalue 3712 includes at least a portion of a document. The example secondcomputing device 3704 includes a unified document surface applicationcircuit 3716 that interprets a user entry value (e.g., as a first userinput 3718) including at least one character, and a user display circuit3714 that determines at least one candidate entry in response to theuser entry value. The example user display circuit 3714 is furtherstructured to provide an autocompleted entry (e.g., as a document view3717) in response to a user selection of the at least one candidateentry. An example user display circuit 3714 is further structured todetermine a list of candidate entries, and to provide a plurality ofcandidate entries to the user in response to the list of candidateentries. An example user display circuit 3714 further provides a previewof at least one of the plurality of candidate entries to the user.

Example and non-limiting previews include: contextual informationrelated to the candidate entry; offset column data for a table relatedto the candidate entry; a related table column heading to the candidateentry; a related table name for the candidate entry; a related objectname to the candidate entry; a related object heading to the candidateentry; and/or a related object value to the candidate entry. Certainfurther example and non-limiting previews include: a result set for atleast one of the candidate entries if the at least one candidate entryis selected; a result of a formula resulting from the candidate entry ifselected; at least one row resulting from a sorting operation if thecandidate entry is selected; at least one row resulting from a filteringoperation if the candidate entry is selected; and/or a depiction of aresulting object if the candidate entry is selected. Certain furtherexample and non-limiting previews include: help text; an impact of theuser entry value; an impact of a candidate entry; a result of the userentry value; a result of a candidate entry; write-through results of theuser entry value; and/or write-through results of a candidate entry.

The described procedural examples for performing autocompletefunctionality may be performed by any systems, apparatuses, and/or as apart of any procedures described in the present disclosure, withoutlimitation.

Referencing FIG. 56, an example procedure 5600 includes an operation5602 to interpret a user entry value including at least one character,and an operation 5604 to determine at least one candidate entry inresponse to the user entry value. The example procedure 5600 furtherincludes an operation 5606 to provide an autocompleted entry in responseto a user selection of the at least one candidate entry. The exampleprocedure 5600 further includes the operation 5604 to determine a listof candidate entries, and an operation 5610 to provide a number ofcandidate entries to the user in response to the list of candidateentries. An example procedure 5600 further includes an operation 5612 toprovide a preview at least one of the number of candidate entries to theuser. Example and non-limiting previews to the user include providing:contextual information related to the candidate entry; offset columndata for a table related to the candidate entry; a related table columnheading to the candidate entry; a related table name for the candidateentry; a related object name to the candidate entry; a related objectheading to the candidate entry; and/or a related object value to thecandidate entry. Additionally or alternatively, example and non-limitingpreviews to the user include providing: a result set for at least one ofthe candidate entries if the at least one candidate entry is selected; aresult of a formula resulting from the candidate entry if selected; atleast one row resulting from a sorting operation if the candidate entryis selected; at least one row resulting from a filtering operation ifthe candidate entry is selected; and a depiction of a resulting objectif the candidate entry is selected.

Customer relationship management (CRM) generally refers to themanagement of a business, organization, or other entity's customers,associates, third party partners and providers, or some other party withwhom an entity has, or wishes to have, a relationship. The interests andconcerns of CRM managers, and users of CRM systems, include but are notlimited to: identifying potential customers, analyzing and trackingcustomer relationships, tracking sales, lost sales, sales trends,measuring product performance across different sales channels, personneldepartments and the like. As such, CRM systems may need to ingest datafrom a plurality of sources, both internal and external to the entityrunning the CRM system, and share information in a collaborativeenvironment, for example, among the entity's personnel, includingpersonnel that may be geographically dispersed. In embodiments, theunified document surface application circuit, as described herein, maysupport and/or comprise a CRM system based at least in part bycontrolling which parties within an organization are authorized toaccess information, such as sensitive information regarding sales,facilitating the retrieval of data, including data that is external toan organization, such as point-of-sale retail data, and providing adocument server and surface that may allocate and support the operationsof a plurality of users, each of whom may be interacting with aplurality of data sources, data tables, documents, and the like.

An example system 6200 may include a unified document surfaceapplication circuit 6219A, 6219B further including an authorizationcircuit 6222A, 6222B that interprets an external data source request6224, and provides an access to an external data source 6226 in responseto the external data source request 6224. In an example, an employee maywish to perform a CRM function by obtaining regional sales data forProduct X from each of a plurality of third party databases, such asretail stores, third party data warehouses and the like. An organizationmay place limits on which employees may access such data, and anauthorization circuit may review permissions and perform authenticationto ensure that a party wishing to view, for example, a particular typeof data or data source is authorized to do so. The authorization circuit6222A, 6222B may prompt a user for authorization information (e.g., ausername, login ID, password, etc.) and/or accesses authorizationinformation accessible to the document, system, a client computingdevice, the document server, or the like. Accordingly, the user mayaccess external data sources 6226 according to available permissionsspecific to the user, entered into a document for use during a project,according to a subscription where the subscription information isentered into the document, document server, client computing device, orotherwise within or accessible to the system. An example authorizationcircuit 6222A, 6222B may further store an authorization tokencorresponding to the external data source 6226 in the document 6206,where the authorization token may include at least one access value suchas: an access type (e.g., read operations, edit operations, writeoperations, and/or delete operations); an access scope (e.g., accessibleportions of the external data source 6226, including differential accesstypes according to the portion of the external data source 6226); anaccess duration (e.g., a session duration of access, applicable calendartime of access, allowed access times for operations to access theexternal data source 6226 and/or portions thereof, includingdifferential times for certain access types and/or portions of theexternal data source 6226); and/or expiration values for theauthorization token); and/or an access reauthorization time value (e.g.,a time to prompt the user for reauthorization, an expiration time for asession, subscription, or the like, and/or expiration values for theauthorization token). For example, a user may have a stored permission,such as a token, indicating that they may access External Data Source 1and 2 but not 3. Upon an attempt to access External Source 1, the usermay be able to import data, create an action link to the external datasource, as described herein, and/or populate a table within the unifieddocument surface with data from External Data Source 1. Continuing theexample, if this user is in a work group with shared responsibilitiesand a shared workspace, a document server 6202 may allocate supportingoperations to a workflow server 6236—for example where operationsrequested according to multiple users and/or for multiple documentsinclude certain common aspects (e.g., downloading bulk information fromExternal Data Source 1, indexing and/or querying operations to a largedata set at least partially shared between documents, and so forth). Inembodiments, the specific operations performed by the workflow server6226 may be direct operations and/or procedures as described in thepresent disclosure, and/or where specific operations performed by theworkflow server 6226 are a superset of operations (e.g., shared betweena number of documents and/or user operations), precursor operations,and/or preparatory operations, for example to support utilization of anexternal data source 6226 that is added to the system 6200.

In embodiments, an administrator, document owner, and/or an authorizeduser, such as a manager, may extend access to a data source and/or theunified document surface, if permitted to other users of the document.For example, a user in need of using data from External Data Source 1 inorder to analyze regional sales trends as part of an organization's CRMprogram does not necessarily need to know the details of accessing theexternal data source 6226, such as calling and engaging APIs for theexternal data source 6226. The authorization circuit 6222 may providefor a configurable front-end for the user to access external datasources 6226, including within linked tables within the unified documentsurface, as described herein, while having only limited information toprovide authorization, such as login information to the external datasource 6226, to the document 6206, and/or as determined according toinformation about the user. For example, a plurality of employees thatare tasked with tracking regional sales may interact with a unifieddocument surface in which there are tables that are linked to externaldata sources, including via active links. As the data changes (e.g.,additional sales are recorded at a retail organization), the linkedtables within the unified document surface may automatically update toindicate the new information. Alternatively, the data may beperiodically updated in the linked tables, updated at the user'srequest, or according to some other schedule or rule. The authorizationrequired to access this data may be unknown to the user, because it isimplicit to that user's interaction and permissions with the unifieddocument surface and the tables therein. Thus, external data sets, suchas a web page or database external to the document surface, may beperiodically and/or continuously updated by operation of the documentserver 2602 that pulls in the updated data and updates correspondingelements of the document 2606, such as linked tables, that utilize theexternal data set.

In another embodiment, a user may wish to track potential sales leadsusing the system 6200. As a starting point, the user may use a unifieddocument surface to create a table or plurality of tables that mayinclude action links to external data sources, such as websites (e.g.,LinkedIn or Wikipedia), networks (American Purchasing Society),distributed databases (job banks), or some other data source. Asdescribed herein, linked tables may be updated within the document aschanges are registered at the external data sources. Alternatively, thedocument may also contain tables containing data that are static or thatonly receive periodic data updates. For example, a CRM professional maybe in the habit of updating, on a quarterly basis, a table listingpurchasing executives' names and contact information. In a second table,or in a second region of the table in which the purchasing executives'data are recorded, the user may also update external data, such as SECfilings for the companies at which the purchasing executive areemployed, for example indicating the quarterly loss or profit of thedivision with which the purchasing executives are associated. Continuingthe example, a table, or tables, within the document may periodicallyupdate the parties that have contacted the user via an email account,recording data such as name, title, address, company of employment, timeof email, and so forth. Once this data is within the document, or madeavailable to the user through the linked tables of the document, theuser may be able to create different views of the data, such as pivottables, as described herein, to explore various relationships among thedata. For example, a particular view of interest to the user might be alisting of 1) purchasing executives with a particular title (e.g.,“Purchasing Director”), 2) from a company for which an SEC quarterlyreport within the last quarter indicated a company profit, increasingmargins, notice of expansion, or some other type of positive financialinformation, and 3) at least one record of email contact with the user.This view/table may be titled (“Promising Leads”), stored (includingstored as a template to be periodically run to refresh the datapresented), and pushed to a client device for viewing.

In certain embodiments, a CRM document 2606 template may includeexternal data structured within linked tables in a manner suited to agiven user's CRM needs permissions and history with a document, forexample as recorded in an operations log that is associated with thedocument surface in which the user is tracking data. Access, views ofdata, and the data presented within a linked table within the documentsurface may be based at least in part on a particular sales team and theindividuals included on the team, or a certain set of products,retailers, or some other criterion of interest in a CRM system.

Real estate can be a fast-moving, competitive industry in which timelyaccess to data is important. A typical home buying experience can beexasperating when one must go to multiple data sources, web search toweb search, to research real estate that is on the market, in yourpreferred neighborhood, in your price range, within your acceptablecommuting range, and so on. In addition to the data regarding theproperties themselves, there is a significant number of realtors tochoose from, data about realtors, historical data regarding their sales,the percentage of asking price they were able to bargain for, number ofdeals closed, etc. To be adequately informed, a participant in the realestate market needs real time access to data regarding the real estatemarket, inventory, sales, realtors, notification when events of interestoccur (e.g., new home listed in preferred neighborhood), and comparisonshopping to know what fair market value is of homes, but also realtor'scommissions, given their sales records.

In embodiments, the system 6200, as described herein, may be used tocreate a unified document surface in which there are linked tables thathave external data links to data sources outside of the system 6200. Thedata sources may include websites containing home listings, valuationdatabases, such as tax assessor's offices, third party valuationservices, crime databases, education websites rating school districts,quality of life indices, or some other type of data. The conventionalmeans of accessing such data is now often sequential web searching,government office visits, meetings with realtors, and so forth. Each mayhave their own manner of allowing access to data, and rules regardingwhich data may be retrieved.

In a preferred embodiment of the present disclosure, with linked tableswithin a unified document surface, a user may be able to extractexternal data, using the method and systems as described herein, andpopulate a table, series of tables, or embedded tables, with the typesof data of most relevance to the user and in the format that is mostactionable for that user's particular intended use of the data. Forexample, a real estate website may allow connectivity through APIfunctionality. A real estate firm may regularly post its sales byneighborhood and price on its website, all data which may be scraped andpopulated with a table. And the user herself may have certain datacriteria she wants to record and track, such as cost of property taxes,age of home that is acceptable and so on. Using the external datafeatures of the system 6200 as described herein, the user may be able toconstruct a table or plurality of tables that retrieve and refresh suchreal estate data on a regular basis, rather than the user having toindividually visit websites, construct traditional spreadsheet summariesof key metrics and the like.

Continuing the example, once the linked tables are functional within theunified document surface, the user may employ formulas and rules tosort, pivot, aggregate and perform other analyses. For example, usingthe @reference functionality, as described herein, the user may be ableto query across these plurality of data sources and data types to pullall data that relates to a four bedroom house (“@four bedroom”), orfinancing status (@foreclosure), or location (@78705), and so forth. Apivot table may be able to produce a listing of all homes listed forsale in a given zip code that also appear in a publicly available crimestatistics database indicating no burglary within the last 24 months.

In embodiments, a user may set notifications and alerts based on datawithin the table(s), or that is updated to a table(s). For example, auser may have tables within a document that are linked to external datasources that provide data related to location, price, schools, crime,lot size, and manually entered personal data regarding the approximatedistance from places of interest, such as family and friend's houses, ora favorite park. Formulas, as described herein, may be used to constructa notification rule regarding the intersection or presence of meaningfuldata, such as “within 1 mile of Zilker Park, sidewalks in neighborhood,under price $X, no burglaries” and so on. This data may also be viewedin conjunction with other data, such as realtor data indicating realtorswho have worked as a buyer's agent in the zip code of interest, andobtained a sale for their buyer at X % below the list price, and withinthe last 12 months.

In embodiments, once there is a match across all these factors, derivedfrom a plurality of datasets, within a view of the data, such as a pivottable, as described herein, the system 6200 may generate a notificationfor the user. A notification may, in one embodiment, take the form of analert that is sent to a client device, such as a mobile phone that isassociated with the user, or that the user indicated within the unifieddocument surface was the appropriate contact for an alert. An alert maybe sent over the Internet, cellular network, WiFi, near-fieldcommunication, beacon, or some other means. Upon receipt of the alert,the client device, such as a smart phone may receive instructions toactivate, such as out of a “sleep mode.” The activation may be coupledwith an audio, visual, tactile, or some other type of indication ofactivity occurring on the client device. Upon activation, the clientdevice may act on instructions received from the system to connect withthe document in which the table data is present, and that is the sourceof the notification/alert. The document may present the user a view ofthe intersection of data that was the cause of the alert (e.g., goodhome, right neighborhood, quality realtor contact with proven salesrecord in the neighborhood). In another embodiment, the client device,such as a smart phone, may present the phone number of the realtoridentified in the linked table view, and ask the user if they would liketo place the call before the opportunity to buy the home passes.

In embodiments, the system 6200 may be used to track human resourcesfunctionalities, including but not limited to the tracking of prospects,the scheduling of job interviews, follow-up interviews, recruitingevents, job fairs, contact information, history of employment, or someother type of data related to human resources and recruiting. Humanresource representatives or others may use a unified document surface tocreate tables, linked tables, and other resources, as described herein,to track personnel data, to keep track of important documentation,including but not limited to resumes, or other documents.

Because the system 6200 is collaborative, and the documents created inthe system may be utilized by multiple parties, and the unified documentsurface may allow multiple parties to comment, review, and evaluatepotential recruits, without having to coordinate the passing of a reviewform or other standardized means of tracking recruiting activities.Functionalities such as the @reference function, as described herein,may allow human resources representatives or others to more efficientlysearch and find needed information regarding prospects or otherinformation.

The external data capabilities of the system 6200 may also enable otherdata sources outside of an organization to contribute to the overallpicture of a recruit. For example, background data, prior employment,data from websites such social network sites, like LinkedIn, or someother type of data may be incorporated into tables, including linkedtables, as described herein and refreshed periodically or automaticallywhen a given data source, such as a website is updated with newinformation. In this way, the system 6200 may be used not just to trackcurrent parties that are undergoing an interview process, but also usedto search for and evaluate potential parties to contact for potentialemployment.

In certain embodiments, operations to determine a list of candidateentries and/or to provide an autocompleted entry can be applied to anytext, formula, and/or data entry in a document. Example and non-limitingclasses of information for candidate entries and/or autocompletedentries include: column names; column values; corrections to apparenterror values in a math operation, a reference, a parsing value, syntax,and/or a formula; a value for a reference precedent and/or dependent;and/or tag parameters. Example and non-limiting previews include: helptext; an impact of an entry (e.g., highlight cells that are changed by acurrent entry); results of a current entry; and/or write-through resultsfor a current entry (e.g., where a source value is updated by a changein a referencing value).

The methods and systems described herein may be deployed in part or inwhole through a machine having a computer, computing device, processor,circuit, and/or server that executes computer readable instructions,program codes, instructions, and/or includes hardware configured tofunctionally execute one or more operations of the methods and systemsdisclosed herein. The terms computer, computing device, processor,circuit, and/or server, as utilized herein, should be understoodbroadly.

Any one or more of the terms computer, computing device, processor,circuit, and/or server include a computer of any type, capable to accessinstructions stored in communication thereto such as upon anon-transient computer readable medium, whereupon the computer performsoperations of systems or methods described herein upon executing theinstructions. In certain embodiments, such instructions themselvescomprise a computer, computing device, processor, circuit, and/orserver. Additionally or alternatively, a computer, computing device,processor, circuit, and/or server may be a separate hardware device, oneor more computing resources distributed across hardware devices, and/ormay include such aspects as logical circuits, embedded circuits,sensors, actuators, input and/or output devices, network and/orcommunication resources, memory resources of any type, processingresources of any type, and/or hardware devices configured to beresponsive to determined conditions to functionally execute one or moreoperations of systems and methods herein.

Network and/or communication resources include, without limitation,local area network, wide area network, wireless, internet, or any otherknown communication resources and protocols. Example and non-limitinghardware, computers, computing devices, processors, circuits, and/orservers include, without limitation, a general purpose computer, aserver, an embedded computer, a mobile device, a virtual machine, and/oran emulated version of one or more of these. Example and non-limitinghardware, computers, computing devices, processors, circuits, and/orservers may be physical, logical, or virtual. A computer, computingdevice, processor, circuit, and/or server may be: a distributed resourceincluded as an aspect of several devices; and/or included as aninteroperable set of resources to perform described functions of thecomputer, computing device, processor, circuit, and/or server, such thatthe distributed resources function together to perform the operations ofthe computer, computing device, processor, circuit, and/or server. Incertain embodiments, each computer, computing device, processor,circuit, and/or server may be on separate hardware, and/or one or morehardware devices may include aspects of more than one computer,computing device, processor, circuit, and/or server, for example asseparately executable instructions stored on the hardware device, and/oras logically partitioned aspects of a set of executable instructions,with some aspects of the hardware device comprising a part of a firstcomputer, computing device, processor, circuit, and/or server, and someaspects of the hardware device comprising a part of a second computer,computing device, processor, circuit, and/or server.

A computer, computing device, processor, circuit, and/or server may bepart of a server, client, network infrastructure, mobile computingplatform, stationary computing platform, or other computing platform. Aprocessor may be any kind of computational or processing device capableof executing program instructions, codes, binary instructions and thelike. The processor may be or include a signal processor, digitalprocessor, embedded processor, microprocessor or any variant such as aco-processor (math co-processor, graphic co-processor, communicationco-processor and the like) and the like that may directly or indirectlyfacilitate execution of program code or program instructions storedthereon. In addition, the processor may enable execution of multipleprograms, threads, and codes. The threads may be executed simultaneouslyto enhance the performance of the processor and to facilitatesimultaneous operations of the application. By way of implementation,methods, program codes, program instructions and the like describedherein may be implemented in one or more threads. The thread may spawnother threads that may have assigned priorities associated with them;the processor may execute these threads based on priority or any otherorder based on instructions provided in the program code. The processormay include memory that stores methods, codes, instructions and programsas described herein and elsewhere. The processor may access a storagemedium through an interface that may store methods, codes, andinstructions as described herein and elsewhere. The storage mediumassociated with the processor for storing methods, programs, codes,program instructions or other type of instructions capable of beingexecuted by the computing or processing device may include but may notbe limited to one or more of a CD-ROM, DVD, memory, hard disk, flashdrive, RAM, ROM, cache and the like.

A processor may include one or more cores that may enhance speed andperformance of a multiprocessor. In embodiments, the process may be adual core processor, quad core processors, other chip-levelmultiprocessor and the like that combine two or more independent cores(called a die).

The methods and systems described herein may be deployed in part or inwhole through a machine that executes computer readable instructions ona server, client, firewall, gateway, hub, router, or other such computerand/or networking hardware. The computer readable instructions may beassociated with a server that may include a file server, print server,domain server, internet server, intranet server and other variants suchas secondary server, host server, distributed server and the like. Theserver may include one or more of memories, processors, computerreadable transitory and/or non-transitory media, storage media, ports(physical and virtual), communication devices, and interfaces capable ofaccessing other servers, clients, machines, and devices through a wiredor a wireless medium, and the like. The methods, programs, or codes asdescribed herein and elsewhere may be executed by the server. Inaddition, other devices required for execution of methods as describedin this application may be considered as a part of the infrastructureassociated with the server.

The server may provide an interface to other devices including, withoutlimitation, clients, other servers, printers, database servers, printservers, file servers, communication servers, distributed servers, andthe like. Additionally, this coupling and/or connection may facilitateremote execution of instructions across the network. The networking ofsome or all of these devices may facilitate parallel processing ofprogram code, instructions, and/or programs at one or more locationswithout deviating from the scope of the disclosure. In addition, all thedevices attached to the server through an interface may include at leastone storage medium capable of storing methods, program code,instructions, and/or programs. A central repository may provide programinstructions to be executed on different devices. In thisimplementation, the remote repository may act as a storage medium formethods, program code, instructions, and/or programs.

The methods, program code, instructions, and/or programs may beassociated with a client that may include a file client, print client,domain client, internet client, intranet client and other variants suchas secondary client, host client, distributed client and the like. Theclient may include one or more of memories, processors, computerreadable transitory and/or non-transitory media, storage media, ports(physical and virtual), communication devices, and interfaces capable ofaccessing other clients, servers, machines, and devices through a wiredor a wireless medium, and the like. The methods, program code,instructions, and/or programs as described herein and elsewhere may beexecuted by the client. In addition, other devices utilized forexecution of methods as described in this application may be consideredas a part of the infrastructure associated with the client.

The client may provide an interface to other devices including, withoutlimitation, servers, other clients, printers, database servers, printservers, file servers, communication servers, distributed servers, andthe like. Additionally, this coupling and/or connection may facilitateremote execution of methods, program code, instructions, and/or programsacross the network. The networking of some or all of these devices mayfacilitate parallel processing of methods, program code, instructions,and/or programs at one or more locations without deviating from thescope of the disclosure. In addition, all the devices attached to theclient through an interface may include at least one storage mediumcapable of storing methods, program code, instructions, and/or programs.A central repository may provide program instructions to be executed ondifferent devices. In this implementation, the remote repository may actas a storage medium for methods, program code, instructions, and/orprograms.

The methods and systems described herein may be deployed in part or inwhole through network infrastructures. The network infrastructure mayinclude elements such as computing devices, servers, routers, hubs,firewalls, clients, personal computers, communication devices, routingdevices and other active and passive devices, modules, and/or componentsas known in the art. The computing and/or non-computing device(s)associated with the network infrastructure may include, apart from othercomponents, a storage medium such as flash memory, buffer, stack, RAM,ROM and the like. The methods, program code, instructions, and/orprograms described herein and elsewhere may be executed by one or moreof the network infrastructural elements.

The methods, program code, instructions, and/or programs describedherein and elsewhere may be implemented on a cellular network havingmultiple cells. The cellular network may either be frequency divisionmultiple access (FDMA) network or code division multiple access (CDMA)network. The cellular network may include mobile devices, cell sites,base stations, repeaters, antennas, towers, and the like.

The methods, program code, instructions, and/or programs describedherein and elsewhere may be implemented on or through mobile devices.The mobile devices may include navigation devices, cell phones, mobilephones, mobile personal digital assistants, laptops, palmtops, netbooks,pagers, electronic books readers, music players, and the like. Thesemobile devices may include, apart from other components, a storagemedium such as a flash memory, buffer, RAM, ROM and one or morecomputing devices. The computing devices associated with mobile devicesmay be enabled to execute methods, program code, instructions, and/orprograms stored thereon. Alternatively, the mobile devices may beconfigured to execute instructions in collaboration with other devices.The mobile devices may communicate with base stations interfaced withservers and configured to execute methods, program code, instructions,and/or programs. The mobile devices may communicate on a peer to peernetwork, mesh network, or other communications network. The methods,program code, instructions, and/or programs may be stored on the storagemedium associated with the server and executed by a computing deviceembedded within the server. The base station may include a computingdevice and a storage medium. The storage device may store methods,program code, instructions, and/or programs executed by the computingdevices associated with the base station.

The methods, program code, instructions, and/or programs may be storedand/or accessed on machine readable transitory and/or non-transitorymedia that may include: computer components, devices, and recordingmedia that retain digital data used for computing for some interval oftime; semiconductor storage known as random access memory (RAM); massstorage typically for more permanent storage, such as optical discs,forms of magnetic storage like hard disks, tapes, drums, cards and othertypes; processor registers, cache memory, volatile memory, non-volatilememory; optical storage such as CD, DVD; removable media such as flashmemory (e.g., USB sticks or keys), floppy disks, magnetic tape, papertape, punch cards, standalone RAM disks, Zip drives, removable massstorage, off-line, and the like; other computer memory such as dynamicmemory, static memory, read/write storage, mutable storage, read only,random access, sequential access, location addressable, fileaddressable, content addressable, network attached storage, storage areanetwork, bar codes, magnetic ink, and the like.

Certain operations described herein include interpreting, receiving,and/or determining one or more values, parameters, inputs, data, orother information. Operations including interpreting, receiving, and/ordetermining any value parameter, input, data, and/or other informationinclude, without limitation: receiving data via a user input; receivingdata over a network of any type; reading a data value from a memorylocation in communication with the receiving device; utilizing a defaultvalue as a received data value; estimating, calculating, or deriving adata value based on other information available to the receiving device;and/or updating any of these in response to a later received data value.In certain embodiments, a data value may be received by a firstoperation, and later updated by a second operation, as part of thereceiving a data value. For example, when communications are down,intermittent, or interrupted, a first operation to interpret, receive,and/or determine a data value may be performed, and when communicationsare restored an updated operation to interpret, receive, and/ordetermine the data value may be performed.

Certain logical groupings of operations herein, for example methods orprocedures of the current disclosure, are provided to illustrate aspectsof the present disclosure. Operations described herein are schematicallydescribed and/or depicted, and operations may be combined, divided,re-ordered, added, or removed in a manner consistent with the disclosureherein. It is understood that the context of an operational descriptionmay require an ordering for one or more operations, and/or an order forone or more operations may be explicitly disclosed, but the order ofoperations should be understood broadly, where any equivalent groupingof operations to provide an equivalent outcome of operations isspecifically contemplated herein. For example, if a value is used in oneoperational step, the determining of the value may be required beforethat operational step in certain contexts (e.g. where the time delay ofdata for an operation to achieve a certain effect is important), but maynot be required before that operation step in other contexts (e.g. whereusage of the value from a previous execution cycle of the operationswould be sufficient for those purposes). Accordingly, in certainembodiments an order of operations and grouping of operations asdescribed is explicitly contemplated herein, and in certain embodimentsre-ordering, subdivision, and/or different grouping of operations isexplicitly contemplated herein.

The methods and systems described herein may transform physical and/oror intangible items from one state to another. The methods and systemsdescribed herein may also transform data representing physical and/orintangible items from one state to another.

The elements described and depicted herein, including in flow charts,block diagrams, and/or operational descriptions, depict and/or describespecific example arrangements of elements for purposes of illustration.However, the depicted and/or described elements, the functions thereof,and/or arrangements of these, may be implemented on machines, such asthrough computer executable transitory and/or non-transitory mediahaving a processor capable of executing program instructions storedthereon, and/or as logical circuits or hardware arrangements. Examplearrangements of programming instructions include at least: monolithicstructure of instructions; standalone modules of instructions forelements or portions thereof; and/or as modules of instructions thatemploy external routines, code, services, and so forth; and/or anycombination of these, and all such implementations are contemplated tobe within the scope of embodiments of the present disclosure Examples ofsuch machines include, without limitation, personal digital assistants,laptops, personal computers, mobile phones, other handheld computingdevices, medical equipment, wired or wireless communication devices,transducers, chips, calculators, satellites, tablet PCs, electronicbooks, gadgets, electronic devices, devices having artificialintelligence, computing devices, networking equipment, servers, routersand the like. Furthermore, the elements described and/or depictedherein, and/or any other logical components, may be implemented on amachine capable of executing program instructions. Thus, while theforegoing flow charts, block diagrams, and/or operational descriptionsset forth functional aspects of the disclosed systems, any arrangementof program instructions implementing these functional aspects arecontemplated herein. Similarly, it will be appreciated that the varioussteps identified and described above may be varied, and that the orderof steps may be adapted to particular applications of the techniquesdisclosed herein. Additionally, any steps or operations may be dividedand/or combined in any manner providing similar functionality to thedescribed operations. All such variations and modifications arecontemplated in the present disclosure. The methods and/or processesdescribed above, and steps thereof, may be implemented in hardware,program code, instructions, and/or programs or any combination ofhardware and methods, program code, instructions, and/or programssuitable for a particular application. Example hardware includes adedicated computing device or specific computing device, a particularaspect or component of a specific computing device, and/or anarrangement of hardware components and/or logical circuits to performone or more of the operations of a method and/or system. The processesmay be implemented in one or more microprocessors, microcontrollers,embedded microcontrollers, programmable digital signal processors orother programmable device, along with internal and/or external memory.The processes may also, or instead, be embodied in an applicationspecific integrated circuit, a programmable gate array, programmablearray logic, or any other device or combination of devices that may beconfigured to process electronic signals. It will further be appreciatedthat one or more of the processes may be realized as a computerexecutable code capable of being executed on a machine readable medium.

The computer executable code may be created using a structuredprogramming language such as C, an object oriented programming languagesuch as C++, or any other high-level or low-level programming language(including assembly languages, hardware description languages, anddatabase programming languages and technologies) that may be stored,compiled or interpreted to run on one of the above devices, as well asheterogeneous combinations of processors, processor architectures, orcombinations of different hardware and computer readable instructions,or any other machine capable of executing program instructions.

Thus, in one aspect, each method described above and combinationsthereof may be embodied in computer executable code that, when executingon one or more computing devices, performs the steps thereof. In anotheraspect, the methods may be embodied in systems that perform the stepsthereof, and may be distributed across devices in a number of ways, orall of the functionality may be integrated into a dedicated, standalonedevice or other hardware. In another aspect, the means for performingthe steps associated with the processes described above may include anyof the hardware and/or computer readable instructions described above.All such permutations and combinations are contemplated in embodimentsof the present disclosure.

What is claimed:
 1. A method, comprising: interpreting a first userinput comprising a text flow entry; positioning a text entry value on aunified document surface in response to the first user input; creatingat least one data structure in response to the text flow entry;positioning the at least one data structure on the unified documentsurface; interpreting an operation log, wherein the operation logcomprises at least one first sequential operation defining operations tocreate data values of a document associated with the unified documentsurface; interpreting a user formula value and updating the document inresponse to the user formula value; and determining a calculationdefinition in response to the user formula value and a document objectmodel, wherein the calculation definition comprises requirements foroperations of an executable model to implement the user formula value.2. The method of claim 1, further comprising: providing a data view ofthe document, wherein the data view is determined using extractioncontext parameters; and wherein the extraction context parameters arebased at least in part on whether other users are accessing portions ofthe document.
 3. The method of claim 1, further comprising:communicating a change value in response to user edits of the document,wherein timing of the communication of the change value is based atleast in part on a number of other users associated with separatecomputing devices that are accessing and/or changing a documentreflected by the operation log.
 4. The method of claim 1, furthercomprising: receiving a change value in response to changes to thedocument from a second user, the change value comprising at least onesequential operation to add to the operation log; determining if thechange value results in conflicting operations in the operation log; andresolving conflicting operations based at least in part on an assignedpriority of the second user.
 5. The method of claim 4, furthercomprising applying non conflicting operations of the operation log. 6.The method of claim 1, further comprising: receiving a change value inresponse to changes to the document from a second user, the change valuecomprising at least one sequential operation to add to the operationlog; determining if the change value results in conflicting operationsin the operation log; and resolving conflicting operations based atleast in part on a number of users affected by the changes.
 7. Themethod of claim 1, further comprising: receiving a change value inresponse to changes to the document from a second user; and storing thechange value outside of the operation log.
 8. A system, comprising: afirst computing device communicatively coupled to a second computingdevice; the first computing device comprising a document serverstructured to communicate a data value to the second computing device,the data value comprising at least a portion of a document; the secondcomputing device comprising: a unified document surface applicationcircuit structured to interpret a first user input comprising a textflow entry, and to interpret a second user input comprising one of anin-line data access entry and a table-based calculation entry; a textflow processing circuit structured to position a text entry value on aunified document surface in response to the first user input; and anenhanced data processing circuit structured to create at least one datastructure in response to the one of the in-line data access entry andthe table-based calculation entry, and to position the data structure onthe unified document surface; a document comprising an operation log,wherein the operation log comprises at least one first sequentialoperation defining operations to create data values of the document, andwherein the document is associated with the unified document surface; adocument object model, wherein the document object model comprises anobject definition corresponding to each of a plurality of objects in thedocument; a formula engine structured to determine a calculationdefinition in response to a user formula value and the document objectmodel wherein the calculation definition comprises requirements foroperations of an executable model to implement the user formula value;and wherein the document is at least partially positioned on at leastone of the first computing device and the second computing, device. 9.The system of claim 8, wherein the document is at least partiallypositioned ? the first computing device and the second computing device.10. The system of claim 8, wherein the second computing device isstructured to: provide a data view of the document, wherein the dataview is determined using extraction context parameters; and wherein theextraction context parameters are based at least in part on whetherother users are accessing portions of the document.
 11. The system ofclaim 8, wherein the second computing device is structured to:communicate a change value to the first computing device in response touser edits of the document, wherein timing of the communication of thechange value is based at least in part on a number of other usersassociated with separate computing devices that are simultaneouslyaccessing and/or changing a document reflected by the operation log. 12.The system of claim 8, wherein the second computing device is structuredto: receive a change value from the first computing device in responseto changes to the document from a second user, the change valuecomprising at least one sequential operation to add to the operationlog; determine if change value results in conflicting operations in theoperation log; and resolve conflicting operations based at least in parton an assigned priority of the second user.
 13. The system of claim 12,wherein the second computing device is structured to apply nonconflicting operations of the operation log.
 14. The system of claim 8,wherein the second computing device is structured to: receive a changevalue from the first computing device in response to changes to thedocument from a second user, the change value comprising at least onesequential operation to add to the operation log; determine if changevalue results in conflicting operations in the operation log; andresolve conflicting operations based at least in part on a number ofusers affected by the changes.
 15. The system of claim 8, wherein thesecond computing device is structured to: receive a change value fromthe first computing device in response to changes to the document from asecond user; and store the change value outside of the operation log.16. A method, comprising: interpreting a user input indicating a tablereference value; accessing a unified document surface comprising atleast two tables; resolving a referenced table of the at least twotables in response to the table reference value; wherein the at leasttwo tables each comprise a reference name value consistent with thetable reference value, and wherein the resolving comprises: determininga first user related position in the unified document surface, andfinding a closest hierarchically related one of the at least two tablesin response to the first user related position; interpreting anoperation log, wherein the operation log comprises at least one firstsequential operation defining operations to create data values of adocument associated with the unified document surface; and interpretinga user formula value and to update the document in response to the userformula value.
 17. The method of claim 16, wherein resolving furthercomprises: determining one or more disambiguation values; and returningthe one or more disambiguation values to a user.
 18. The method of claim17, wherein the operation log includes disambiguation values and whereinthe one or more disambiguation values enforce uniqueness.
 19. The methodof claim 17, further comprising determining a document view in responseto the one or more returned disambiguation values.
 20. The method ofclaim 17, wherein the one or more returned disambiguation values areselected from values consisting of: an object name, an object method,and a dereferencing option value.
 21. The method of claim 17, whereinthe one or more disambiguation values are returned to the user orderedbased on priority.
 22. The method of claim 17, wherein the one or moredisambiguation values are selected from at least one of: primary keys,offset data, neighboring column names, and table name.
 23. The method ofclaim 17, wherein the one or more disambiguation values are selectedfrom at least one of: reference entries, related tables, relatedwebsites, and external data.
 24. The method of claim 17, wherein the oneor more disambiguation values are presented in response to: a partialentry of the user input, misspelling of the user input, or more than onemasks values matching user input.